Skip to contentSkip to conversation

mips-fix-highmem-initialization.patch removed from -mm tree

merged mm-hotfixes-stable Andrew Morton 1 participant 1 message Jan 13

lore
Share & tools
lore

Andrew Morton

author tree notice Applied
#0 lore raw

The quilt patch titled
Subject: mips: fix HIGHMEM initialization
has been removed from the -mm tree. Its filename was
mips-fix-highmem-initialization.patch

This patch was dropped because it was merged into the mm-hotfixes-stable branch of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm

------------------------------------------------------
From: "Mike Rapoport (Microsoft)" <[email protected]>
Subject: mips: fix HIGHMEM initialization
Date: Wed, 31 Dec 2025 12:57:01 +0200

Commit 6faea3422e3b ("arch, mm: streamline HIGHMEM freeing") overzealously removed mem_init_free_highmem() function that beside freeing high memory pages checked for CPU support for high memory as a prerequisite.

Partially restore mem_init_free_highmem() with a new highmem_init() name and make it discard high memory in case there is no CPU support for it.

Fixes 6faea3422e3b ("arch, mm: streamline HIGHMEM freeing")
Cc Chris Packham <[email protected]>
Cc Hauke Mehrtens <[email protected]>
Cc Jonas Jelonek <[email protected]>
Cc Thomas Bogendoerfer <[email protected]>
Cc Thomas Gleinxer <[email protected]>

---

 arch/mips/mm/init.c |   23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
arch/mips/mm/init.c renamed from arch/mips/mm/init.c~mips-fix-highmem-initialization +23 -0
@@ -425,6 +425,28 @@ void __init paging_init(void)
 static struct kcore_list kcore_kseg0;
 #endif
 
+static inline void __init highmem_init(void)
+{
+#ifdef CONFIG_HIGHMEM
+	unsigned long tmp;
+
+	/*
+	 * If CPU cannot support HIGHMEM discard the memory above highstart_pfn
+	 */
+	if (cpu_has_dc_aliases) {
+		memblock_remove(PFN_PHYS(highstart_pfn), -1);
+		return;
+	}
+
+	for (tmp = highstart_pfn; tmp < highend_pfn; tmp++) {
+		struct page *page = pfn_to_page(tmp);
+
+		if (!memblock_is_memory(PFN_PHYS(tmp)))
+			SetPageReserved(page);
+	}
+#endif
+}
+
 void __init arch_mm_preinit(void)
 {
 	/*
@@ -435,6 +457,7 @@ void __init arch_mm_preinit(void)
 
 	maar_init();
 	setup_zero_pages();	/* Setup zeroed pages.  */
+	highmem_init();
 
 #ifdef CONFIG_64BIT
 	if ((unsigned long) &_text > (unsigned long) CKSEG0)

_

Patches currently in -mm which might be from [email protected] are

alpha-introduce-arch_zone_limits_init.patch arc-introduce-arch_zone_limits_init.patch arm-introduce-arch_zone_limits_init.patch arm64-introduce-arch_zone_limits_init.patch csky-introduce-arch_zone_limits_init.patch hexagon-introduce-arch_zone_limits_init.patch loongarch-introduce-arch_zone_limits_init.patch m68k-introduce-arch_zone_limits_init.patch microblaze-introduce-arch_zone_limits_init.patch mips-introduce-arch_zone_limits_init.patch nios2-introduce-arch_zone_limits_init.patch openrisc-introduce-arch_zone_limits_init.patch parisc-introduce-arch_zone_limits_init.patch powerpc-introduce-arch_zone_limits_init.patch riscv-introduce-arch_zone_limits_init.patch s390-introduce-arch_zone_limits_init.patch sh-introduce-arch_zone_limits_init.patch sparc-introduce-arch_zone_limits_init.patch um-introduce-arch_zone_limits_init.patch x86-introduce-arch_zone_limits_init.patch xtensa-introduce-arch_zone_limits_init.patch arch-mm-consolidate-initialization-of-nodes-zones-and-memory-map.patch arch-mm-consolidate-initialization-of-sparse-memory-model.patch mips-drop-paging_init.patch x86-dont-reserve-hugetlb-memory-in-setup_arch.patch mm-arch-consolidate-hugetlb-cma-reservation.patch mm-hugetlb-drop-hugetlb_cma_check.patch revert-mm-hugetlb-deal-with-multiple-calls-to-hugetlb_bootmem_alloc.patch kho-abi-luo-make-generated-documentation-more-coherent.patch kho-abi-memfd-make-generated-documentation-more-coherent.patch kho-docs-combine-concepts-and-fdt-documentation.patch kho-docs-combine-concepts-and-fdt-documentation-fix.patch kho-abi-add-memblock-abi-header.patch