From 33f6bfc6be9152c529adb9d7ce18e6db2c57c3dd Mon Sep 17 00:00:00 2001 From: Sam Ravnborg Date: Sun, 31 Dec 2023 13:19:42 +0100 Subject: [PATCH 3/8] sparc32: Move bootmem_init to setup_memory Move it away from srmmu, so we can have more of the memory handling in one place. Signed-off-by: Sam Ravnborg Cc: "David S. Miller" Cc: Andreas Larsson --- arch/sparc/include/asm/pgtable_32.h | 2 +- arch/sparc/kernel/setup_32.c | 2 ++ arch/sparc/mm/init_32.c | 5 +---- arch/sparc/mm/srmmu.c | 4 ---- 4 files changed, 4 insertions(+), 9 deletions(-) diff --git a/arch/sparc/include/asm/pgtable_32.h b/arch/sparc/include/asm/pgtable_32.h index 40cdca44ea63..d353fdfa1c61 100644 --- a/arch/sparc/include/asm/pgtable_32.h +++ b/arch/sparc/include/asm/pgtable_32.h @@ -38,7 +38,7 @@ struct page; void load_mmu(void); unsigned long calc_highpages(void); -unsigned long __init bootmem_init(unsigned long *pages_avail); +void __init bootmem_init(void); #define pte_ERROR(e) __builtin_trap() #define pmd_ERROR(e) __builtin_trap() diff --git a/arch/sparc/kernel/setup_32.c b/arch/sparc/kernel/setup_32.c index 0ec597b2a567..75c36f734dfb 100644 --- a/arch/sparc/kernel/setup_32.c +++ b/arch/sparc/kernel/setup_32.c @@ -209,6 +209,8 @@ static void __init setup_memory(void) /* Lowest address available */ phys_base = memblock_start_of_DRAM(); pfn_base = min_low_pfn; + + bootmem_init(); } void __init setup_arch(char **cmdline_p) diff --git a/arch/sparc/mm/init_32.c b/arch/sparc/mm/init_32.c index bd42fb1611e7..ebaa2ba2f318 100644 --- a/arch/sparc/mm/init_32.c +++ b/arch/sparc/mm/init_32.c @@ -118,7 +118,7 @@ static void __init find_ramdisk(unsigned long end_of_phys_memory) #endif } -unsigned long __init bootmem_init(unsigned long *pages_avail) +void __init bootmem_init(void) { unsigned long start_pfn, bytes_avail, size; unsigned long end_of_phys_memory = 0; @@ -178,12 +178,9 @@ unsigned long __init bootmem_init(unsigned long *pages_avail) memblock_add(phys_base, size); size = memblock_phys_mem_size() - memblock_reserved_size(); - *pages_avail = (size >> PAGE_SHIFT) - high_pages; /* Only allow low memory to be allocated via memblock allocation */ memblock_set_current_limit(max_low_pfn << PAGE_SHIFT); - - return max_pfn; } /* diff --git a/arch/sparc/mm/srmmu.c b/arch/sparc/mm/srmmu.c index 67a4f1f74dc3..dfe5bae5aee9 100644 --- a/arch/sparc/mm/srmmu.c +++ b/arch/sparc/mm/srmmu.c @@ -727,7 +727,6 @@ void __init srmmu_paging_init(void) pud_t *pud; pmd_t *pmd; pte_t *pte; - unsigned long pages_avail; init_mm.context = (unsigned long) NO_CONTEXT; sparc_iomap.start = SUN4M_IOBASE_VADDR; /* 16MB of IOSPACE on all sun4m's. */ @@ -749,9 +748,6 @@ void __init srmmu_paging_init(void) prom_halt(); } - pages_avail = 0; - bootmem_init(&pages_avail); - srmmu_nocache_calcsize(); srmmu_nocache_init(); srmmu_inherit_prom_mappings(0xfe400000, (LINUX_OPPROM_ENDVM - PAGE_SIZE)); -- 2.53.0