On Fri, Dec 22, 2023 at 03:02:03PM +0800, Kefeng Wang wrote: > IA64 has gone with commit cf8e8658100d ("arch: Remove > Itanium (IA-64) architecture"), remove unnecessary ia64 > special mm code and comment too. > > Signed-off-by: Kefeng Wang <wangkefeng.wang@xxxxxxxxxx> Reviewed-by: Mike Rapoport (IBM) <rppt@xxxxxxxxxx> > --- > mm/Kconfig | 2 +- > mm/memory.c | 4 +--- > mm/mm_init.c | 48 +++++++++++++++++++----------------------------- > mm/page_owner.c | 1 - > 4 files changed, 21 insertions(+), 34 deletions(-) > > diff --git a/mm/Kconfig b/mm/Kconfig > index 7824eeb53f7a..a6e1c51959c0 100644 > --- a/mm/Kconfig > +++ b/mm/Kconfig > @@ -732,7 +732,7 @@ config DEFAULT_MMAP_MIN_ADDR > from userspace allocation. Keeping a user from writing to low pages > can help reduce the impact of kernel NULL pointer bugs. > > - For most ia64, ppc64 and x86 users with lots of address space > + For most ppc64 and x86 users with lots of address space > a value of 65536 is reasonable and should cause no problems. > On arm and other archs it should not be higher than 32768. > Programs which use vm86 functionality or have some need to map > diff --git a/mm/memory.c b/mm/memory.c > index 716648268fed..86ca40a3f681 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -123,9 +123,7 @@ static bool vmf_orig_pte_uffd_wp(struct vm_fault *vmf) > /* > * A number of key systems in x86 including ioremap() rely on the assumption > * that high_memory defines the upper bound on direct map memory, then end > - * of ZONE_NORMAL. Under CONFIG_DISCONTIG this means that max_low_pfn and > - * highstart_pfn must be the same; there must be no gap between ZONE_NORMAL > - * and ZONE_HIGHMEM. > + * of ZONE_NORMAL. > */ > void *high_memory; > EXPORT_SYMBOL(high_memory); > diff --git a/mm/mm_init.c b/mm/mm_init.c > index ac3d911c34fd..2390dca94d70 100644 > --- a/mm/mm_init.c > +++ b/mm/mm_init.c > @@ -1467,8 +1467,7 @@ void __init set_pageblock_order(void) > > /* > * Assume the largest contiguous order of interest is a huge page. > - * This value may be variable depending on boot parameters on IA64 and > - * powerpc. > + * This value may be variable depending on boot parameters on powerpc. > */ > pageblock_order = order; > } > @@ -1629,8 +1628,8 @@ void __init *memmap_alloc(phys_addr_t size, phys_addr_t align, > #ifdef CONFIG_FLATMEM > static void __init alloc_node_mem_map(struct pglist_data *pgdat) > { > - unsigned long __maybe_unused start = 0; > - unsigned long __maybe_unused offset = 0; > + unsigned long start, offset, size, end; > + struct page *map; > > /* Skip empty nodes */ > if (!pgdat->node_spanned_pages) > @@ -1638,33 +1637,24 @@ static void __init alloc_node_mem_map(struct pglist_data *pgdat) > > start = pgdat->node_start_pfn & ~(MAX_ORDER_NR_PAGES - 1); > offset = pgdat->node_start_pfn - start; > - /* ia64 gets its own node_mem_map, before this, without bootmem */ > - if (!pgdat->node_mem_map) { > - unsigned long size, end; > - struct page *map; > - > - /* > - * The zone's endpoints aren't required to be MAX_ORDER > - * aligned but the node_mem_map endpoints must be in order > - * for the buddy allocator to function correctly. > - */ > - end = pgdat_end_pfn(pgdat); > - end = ALIGN(end, MAX_ORDER_NR_PAGES); > - size = (end - start) * sizeof(struct page); > - map = memmap_alloc(size, SMP_CACHE_BYTES, MEMBLOCK_LOW_LIMIT, > - pgdat->node_id, false); > - if (!map) > - panic("Failed to allocate %ld bytes for node %d memory map\n", > - size, pgdat->node_id); > - pgdat->node_mem_map = map + offset; > - } > - pr_debug("%s: node %d, pgdat %08lx, node_mem_map %08lx\n", > - __func__, pgdat->node_id, (unsigned long)pgdat, > - (unsigned long)pgdat->node_mem_map); > -#ifndef CONFIG_NUMA > /* > - * With no DISCONTIG, the global mem_map is just set as node 0's > + * The zone's endpoints aren't required to be MAX_ORDER > + * aligned but the node_mem_map endpoints must be in order > + * for the buddy allocator to function correctly. > */ > + 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); > + if (!map) > + panic("Failed to allocate %ld bytes for node %d memory map\n", > + size, pgdat->node_id); > + pgdat->node_mem_map = map + offset; > + pr_debug("%s: node %d, pgdat %08lx, node_mem_map %08lx\n", > + __func__, pgdat->node_id, (unsigned long)pgdat, > + (unsigned long)pgdat->node_mem_map); > +#ifndef CONFIG_NUMA > + /* the global mem_map is just set as node 0's */ > if (pgdat == NODE_DATA(0)) { > mem_map = NODE_DATA(0)->node_mem_map; > if (page_to_pfn(mem_map) != pgdat->node_start_pfn) > diff --git a/mm/page_owner.c b/mm/page_owner.c > index e7eba7688881..040dbf26a986 100644 > --- a/mm/page_owner.c > +++ b/mm/page_owner.c > @@ -121,7 +121,6 @@ static noinline depot_stack_handle_t save_stack(gfp_t flags) > * Sometimes page metadata allocation tracking requires more > * memory to be allocated: > * - when new stack trace is saved to stack depot > - * - when backtrace itself is calculated (ia64) > */ > if (current->in_page_owner) > return dummy_handle; > -- > 2.27.0 > > -- Sincerely yours, Mike.