[PATCH 3/8] sparc32: Move bootmem_init to setup_memory

From: Sam Ravnborg

Date: Sun Dec 31 2023 - 07:19:42 EST


Move it away from srmmu, so we can have more of the memory handling in
one place.

Signed-off-by: Sam Ravnborg <sam@xxxxxxxxxxxx>
Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>
Cc: Andreas Larsson <andreas@xxxxxxxxxxx>
---
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


--7JT2ezVoPwppFeaz
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
filename="0004-sparc32-Drop-printing-HIGHMEM-available.patch"