linux-mips
[Top] [All Lists]

Re: [PATCH] sparsemem fix

To: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Subject: Re: [PATCH] sparsemem fix
From: Chad Reese <kreese@caviumnetworks.com>
Date: Tue, 04 Jul 2006 10:03:35 -0700
Cc: linux-mips@linux-mips.org, ralf@linux-mips.org
In-reply-to: <20060705.012244.96686002.anemo@mba.ocn.ne.jp>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <20060705.012244.96686002.anemo@mba.ocn.ne.jp>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.13) Gecko/20060620 Debian/1.7.13-0.2
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@mba.ocn.ne.jp>

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)



<Prev in Thread] Current Thread [Next in Thread>