Hi Mike, On Thu, 6 Feb 2025 15:27:42 +0200, Mike Rapoport <rppt@xxxxxxxxxx> wrote: > From: "Mike Rapoport (Microsoft)" <rppt@xxxxxxxxxx> > > to denote areas that were reserved for kernel use either directly with > memblock_reserve_kern() or via memblock allocations. > > Signed-off-by: Mike Rapoport (Microsoft) <rppt@xxxxxxxxxx> > --- > include/linux/memblock.h | 16 +++++++++++++++- > mm/memblock.c | 32 ++++++++++++++++++++++++-------- > 2 files changed, 39 insertions(+), 9 deletions(-) > > diff --git a/include/linux/memblock.h b/include/linux/memblock.h > index e79eb6ac516f..65e274550f5d 100644 > --- a/include/linux/memblock.h > +++ b/include/linux/memblock.h > ...... > @@ -116,7 +117,19 @@ int memblock_add_node(phys_addr_t base, phys_addr_t size, int nid, > int memblock_add(phys_addr_t base, phys_addr_t size); > int memblock_remove(phys_addr_t base, phys_addr_t size); > int memblock_phys_free(phys_addr_t base, phys_addr_t size); > -int memblock_reserve(phys_addr_t base, phys_addr_t size); > +int __memblock_reserve(phys_addr_t base, phys_addr_t size, int nid, > + enum memblock_flags flags); > + > +static __always_inline int memblock_reserve(phys_addr_t base, phys_addr_t size) > +{ > + return __memblock_reserve(base, size, NUMA_NO_NODE, 0); Without this patch `memblock_reserve` eventually calls `memblock_add_range` with `MAX_NUMNODES`, but with this patch, `memblock_reserve` calls `memblock_add_range` with `NUMA_NO_NODE`. Is it intended or an accidental typo? Thanks! > ...... > > -int __init_memblock memblock_reserve(phys_addr_t base, phys_addr_t size) > +int __init_memblock __memblock_reserve(phys_addr_t base, phys_addr_t size, > + int nid, enum memblock_flags flags) > { > phys_addr_t end = base + size - 1; > > - memblock_dbg("%s: [%pa-%pa] %pS\n", __func__, > - &base, &end, (void *)_RET_IP_); > + memblock_dbg("%s: [%pa-%pa] nid=%d flags=%x %pS\n", __func__, > + &base, &end, nid, flags, (void *)_RET_IP_); > > - return memblock_add_range(&memblock.reserved, base, size, MAX_NUMNODES, 0); Originally `memblock_reserve` calls `memblock_add_range` with `MAX_NUMNODES`, See my comments above. Best, Changyuan