Re: [PATCH] sparsemem fix

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I believe Ralf committed a cleaned up version of the patch I created 5/23/2006. It called memory_present() after the first bootmap memory was created. I've been using this and dynamic sparsemem on Mips64 for a while now.

Hope this helps,

Chad

Atsushi Nemoto wrote:

1. MIPS should select SPARSEMEM_STATIC since allocating bootmem in
  memory_present() will corrupt bootmap area.
2. pfn_valid() for SPARSEMEM is defined in linux/mmzone.h

Signed-off-by: Atsushi Nemoto <anemo@xxxxxxxxxxxxx>

diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index f151a7e..879a19c 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1690,6 +1690,7 @@ config ARCH_DISCONTIGMEM_ENABLE

config ARCH_SPARSEMEM_ENABLE
	bool
+	select SPARSEMEM_STATIC

config NUMA
	bool "NUMA Support"
diff --git a/include/asm-mips/page.h b/include/asm-mips/page.h
index 6b97744..6ed1151 100644
--- a/include/asm-mips/page.h
+++ b/include/asm-mips/page.h
@@ -138,16 +138,14 @@ #define __va(x)			((void *)((unsigned lo

#define pfn_to_kaddr(pfn)	__va((pfn) << PAGE_SHIFT)

-#ifndef CONFIG_SPARSEMEM
-#ifndef CONFIG_NEED_MULTIPLE_NODES
-#define pfn_valid(pfn)		((pfn) < max_mapnr)
-#endif
-#endif
-
#ifdef CONFIG_FLATMEM

#define pfn_valid(pfn)		((pfn) < max_mapnr)

+#elif defined(CONFIG_SPARSEMEM)
+
+/* pfn_valid is defined in linux/mmzone.h */
+
#elif defined(CONFIG_NEED_MULTIPLE_NODES)

#define pfn_valid(pfn)							\
@@ -159,8 +157,6 @@ ({									\
	            : 0);						\
})

-#else
-#error Provide a definition of pfn_valid
#endif

#define virt_to_page(kaddr)	pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)




[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux