mm: Remove unused exact_nid parameter from memmap_alloc()

Commit ffe5539313 ("mm/sparse: remove sparse buffer pre-allocation
mechanism") removed sparse_buffer_init(), which was the only caller of
memmap_alloc() that passed true for exact_nid.

All remaining callers pass false, leaving the exact-node allocation
branch unreachable. Remove the exact_nid parameter and unconditionally
use memblock_alloc_try_nid_raw().

This has no functional impact.

Signed-off-by: Kaitao Cheng <chengkaitao@kylinos.cn>
Link: https://patch.msgid.link/20260919135327.74089-2-kaitao.cheng@linux.dev
Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
This commit is contained in:
Kaitao Cheng 2026-09-19 21:53:25 +08:00 committed by Mike Rapoport (Microsoft)
parent 5728d3523f
commit 063b5e8bbd
4 changed files with 8 additions and 29 deletions

View File

@ -1549,7 +1549,7 @@ static void __init free_area_init_core(struct pglist_data *pgdat)
}
void __init *memmap_alloc(phys_addr_t size, phys_addr_t align,
phys_addr_t min_addr, int nid, bool exact_nid)
phys_addr_t min_addr, int nid)
{
void *ptr;
@ -1557,14 +1557,8 @@ void __init *memmap_alloc(phys_addr_t size, phys_addr_t align,
* Kmemleak will explicitly scan mem_map by traversing all valid
* `struct *page`,so memblock does not need to be added to the scan list.
*/
if (exact_nid)
ptr = memblock_alloc_exact_nid_raw(size, align, min_addr,
MEMBLOCK_ALLOC_NOLEAKTRACE,
nid);
else
ptr = memblock_alloc_try_nid_raw(size, align, min_addr,
MEMBLOCK_ALLOC_NOLEAKTRACE,
nid);
ptr = memblock_alloc_try_nid_raw(size, align, min_addr,
MEMBLOCK_ALLOC_NOLEAKTRACE, nid);
if (ptr && size > 0)
page_init_poison(ptr, size);
@ -1592,7 +1586,7 @@ static void __init alloc_node_mem_map(struct pglist_data *pgdat)
end = ALIGN(pgdat_end_pfn(pgdat), MAX_ORDER_NR_PAGES);
size = (end - start) * sizeof(struct page);
map = memmap_alloc(size, SMP_CACHE_BYTES, MEMBLOCK_LOW_LIMIT,
pgdat->node_id, false);
pgdat->node_id);
if (!map)
panic("Failed to allocate %ld bytes for node %d memory map\n",
size, pgdat->node_id);

View File

@ -31,8 +31,8 @@ static inline void clear_zone_contiguous(struct zone *zone)
void memblock_free_pages(unsigned long pfn, unsigned int order);
void *memmap_alloc(phys_addr_t size, phys_addr_t align, phys_addr_t min_addr,
int nid, bool exact_nid);
void *memmap_alloc(phys_addr_t size, phys_addr_t align,
phys_addr_t min_addr, int nid);
void memmap_init_range(unsigned long size, int nid, unsigned long zone,
unsigned long start_pfn, unsigned long zone_end_pfn,

View File

@ -44,20 +44,6 @@
#include "mm_init.h"
#include "sparse.h"
/*
* Allocate a block of memory to be used to back the virtual memory map
* or to back the page tables that are used to create the mapping.
* Uses the main allocators if they are available, else bootmem.
*/
static void * __ref __earlyonly_bootmem_alloc(int node,
unsigned long size,
unsigned long align,
unsigned long goal)
{
return memmap_alloc(size, align, goal, node, false);
}
void * __meminit vmemmap_alloc_block(unsigned long size, int node)
{
/* If the main allocator is up use that, fallback to bootmem. */
@ -78,8 +64,7 @@ void * __meminit vmemmap_alloc_block(unsigned long size, int node)
}
return NULL;
} else
return __earlyonly_bootmem_alloc(node, size, size,
__pa(MAX_DMA_ADDRESS));
return memmap_alloc(size, size, __pa(MAX_DMA_ADDRESS), node);
}
static void * __meminit altmap_alloc_block_buf(unsigned long size,

View File

@ -231,7 +231,7 @@ struct page __init *__populate_section_memmap(unsigned long pfn,
{
unsigned long size = section_map_size();
return memmap_alloc(size, size, __pa(MAX_DMA_ADDRESS), nid, false);
return memmap_alloc(size, size, __pa(MAX_DMA_ADDRESS), nid);
}
#endif /* !CONFIG_SPARSEMEM_VMEMMAP */