mirror of
https://github.com/torvalds/linux.git
synced 2026-05-12 16:18:45 +02:00
powerpc: fadump: pair alloc_pages_exact() with free_pages_exact()
fadump allocates buffers with alloc_pages_exact(), but then marks them as reserved and frees using free_reserved_area(). This is completely unnecessary and the pages allocated with alloc_pages_exact() can be naturally freed with free_pages_exact(). Replace freeing of memory in fadump_free_buffer() with free_pages_exact() and simplify allocation code so that it won't mark allocated pages as reserved. Link: https://patch.msgid.link/20260323074836.3653702-3-rppt@kernel.org Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
This commit is contained in:
parent
c12c3e1507
commit
25ee3aff99
|
|
@ -775,24 +775,12 @@ void __init fadump_update_elfcore_header(char *bufp)
|
|||
|
||||
static void *__init fadump_alloc_buffer(unsigned long size)
|
||||
{
|
||||
unsigned long count, i;
|
||||
struct page *page;
|
||||
void *vaddr;
|
||||
|
||||
vaddr = alloc_pages_exact(size, GFP_KERNEL | __GFP_ZERO);
|
||||
if (!vaddr)
|
||||
return NULL;
|
||||
|
||||
count = PAGE_ALIGN(size) / PAGE_SIZE;
|
||||
page = virt_to_page(vaddr);
|
||||
for (i = 0; i < count; i++)
|
||||
mark_page_reserved(page + i);
|
||||
return vaddr;
|
||||
return alloc_pages_exact(size, GFP_KERNEL | __GFP_ZERO);
|
||||
}
|
||||
|
||||
static void fadump_free_buffer(unsigned long vaddr, unsigned long size)
|
||||
{
|
||||
free_reserved_area((void *)vaddr, (void *)(vaddr + size), -1, NULL);
|
||||
free_pages_exact((void *)vaddr, size);
|
||||
}
|
||||
|
||||
s32 __init fadump_setup_cpu_notes_buf(u32 num_cpus)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user