* [PATCH] unify pfn_to_page take3 [0/23]
@ 2006-02-14 9:48 KAMEZAWA Hiroyuki
2006-02-14 9:54 ` [PATCH] unify pfn_to_page take3 [1/23] generic functions KAMEZAWA Hiroyuki
` (23 more replies)
0 siblings, 24 replies; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-14 9:48 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Andrew Morton, Kyle McMartin
Hi, this is unify-pfn_to_page patch take3. thank you for comments on
previous version.
This patch consolidates definitions of pfn_to_page/page_to_pfn which are
defined by each arch to generic one. Most of archs can use it.
This patch is against 2.6.16-rc3 and totally rewritten.
Changelog v2 -> v3
- linux/memory_model.h is moved to asm-generic/memory_model.h
- If an arch can use generic funcs, it includes asm-generic/memory_model.h.
If not, it doesn't include them. (m68k, m68knommu, ia64 + virtual_mem_map)
- remvoed CONFIG_ARCH_PFN_TO_PAGE
- CONFIG_DONT_INLINE_PFN_TO_PAGE was renamed to CONFIG_OUT_OF_LINE_PFN_TO_PAGE
This is used by x86_64+DISCONTIGMEM and sparc64.
Changelog: v1->v2
- linux/memory_model.h is added. this defines pfn<->page translation.
- new config options (set by arch) CONFIG_DONT_INLINE_PFN_TO_PAGE
and CONFIG_ARCH_HAS_PFN_TO_PAGE are added.
- SPARSEMEM's page_to_pfn is moved to linux/memory_model.h
-- Kame.
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH] unify pfn_to_page take3 [1/23] generic functions
2006-02-14 9:48 [PATCH] unify pfn_to_page take3 [0/23] KAMEZAWA Hiroyuki
@ 2006-02-14 9:54 ` KAMEZAWA Hiroyuki
2006-02-14 9:56 ` [PATCH] unify pfn_to_page take3 [2/23] i386 pfn_to_page KAMEZAWA Hiroyuki
` (22 subsequent siblings)
23 siblings, 0 replies; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-14 9:54 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Andrew Morton, Kyle McMartin
There are 3 memory models, FLATMEM, DISCONTIGMEM, SPARSEMEM.
Each arch defines its own page_to_pfn(), pfn_to_page() for each models.
But most of them can use the same function.
This patch adds asm-generic/memory_model.h, which defines generic
page_to_pfn(), pfn_to_page() for each memory model.
When CONFIG_OUT_OF_LINE_PFN_TO_PAGE=y, out-of-line functions are
used instead of macro. This is enabled by some archs and reduces
text size.
Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Index: testtree/include/asm-generic/memory_model.h
===================================================================
--- /dev/null
+++ testtree/include/asm-generic/memory_model.h
@@ -0,0 +1,77 @@
+#ifndef __ASM_MEMORY_MODEL_H
+#define __ASM_MEMORY_MODEL_H
+
+#ifdef __KERNEL__
+#ifndef __ASSEMBLY__
+
+#if defined(CONFIG_FLATMEM)
+
+#ifndef ARCH_PFN_OFFSET
+#define ARCH_PFN_OFFSET (0UL)
+#endif
+
+#elif defined(CONFIG_DISCONTIGMEM)
+
+#ifndef arch_pfn_to_nid
+#define arch_pfn_to_nid(pfn) pfn_to_nid(pfn)
+#endif
+
+#ifndef arch_local_page_offset
+#define arch_local_page_offset(pfn, nid) \
+ ((pfn) - NODE_DATA(nid)->node_start_pfn)
+#endif
+
+#endif /* CONFIG_DISCONTIGMEM */
+
+#ifdef CONFIG_OUT_OF_LINE_PFN_TO_PAGE
+struct page;
+/* this is useful when inlined pfn_to_page is too big */
+extern struct page *pfn_to_page(unsigned long pfn);
+extern unsigned long page_to_pfn(struct page *page);
+#else
+/*
+ * supports 3 memory models.
+ */
+#if defined(CONFIG_FLATMEM)
+
+#define pfn_to_page(pfn) (mem_map + ((pfn) - ARCH_PFN_OFFSET))
+#define page_to_pfn(page) ((unsigned long)((page) - mem_map) + \
+ ARCH_PFN_OFFSET)
+#elif defined(CONFIG_DISCONTIGMEM)
+
+#define pfn_to_page(pfn) \
+({ unsigned long __pfn = (pfn); \
+ unsigned long __nid = arch_pfn_to_nid(pfn); \
+ NODE_DATA(__nid)->node_mem_map + arch_local_page_offset(__pfn, __nid);\
+})
+
+#define page_to_pfn(pg) \
+({ struct page *__pg = (pg); \
+ struct zone *__zone = page_zone(__pg); \
+ (unsigned long)(__pg - __zone->zone_mem_map) + \
+ __zone->zone_start_pfn; \
+})
+
+#elif defined(CONFIG_SPARSEMEM)
+/*
+ * Note: section's mem_map is encorded to reflect its start_pfn.
+ * section[i].section_mem_map == mem_map's address - start_pfn;
+ */
+#define page_to_pfn(pg) \
+({ struct page *__pg = (pg); \
+ int __sec = page_to_section(__pg); \
+ __pg - __section_mem_map_addr(__nr_to_section(__sec)); \
+})
+
+#define pfn_to_page(pfn) \
+({ unsigned long __pfn = (pfn); \
+ struct mem_section *__sec = __pfn_to_section(__pfn); \
+ __section_mem_map_addr(__sec) + __pfn; \
+})
+#endif /* CONFIG_FLATMEM/DISCONTIGMEM/SPARSEMEM */
+#endif /* CONFIG_OUT_OF_LINE_PFN_TO_PAGE */
+
+#endif /* __ASSEMBLY__ */
+#endif /* __KERNEL__ */
+
+#endif
Index: testtree/include/linux/mmzone.h
===================================================================
--- testtree.orig/include/linux/mmzone.h
+++ testtree/include/linux/mmzone.h
@@ -602,17 +602,6 @@ static inline struct mem_section *__pfn_
return __nr_to_section(pfn_to_section_nr(pfn));
}
-#define pfn_to_page(pfn) \
-({ \
- unsigned long __pfn = (pfn); \
- __section_mem_map_addr(__pfn_to_section(__pfn)) + __pfn; \
-})
-#define page_to_pfn(page) \
-({ \
- page - __section_mem_map_addr(__nr_to_section( \
- page_to_section(page))); \
-})
-
static inline int pfn_valid(unsigned long pfn)
{
if (pfn_to_section_nr(pfn) >= NR_MEM_SECTIONS)
Index: testtree/mm/page_alloc.c
===================================================================
--- testtree.orig/mm/page_alloc.c
+++ testtree/mm/page_alloc.c
@@ -2726,3 +2726,45 @@ void *__init alloc_large_system_hash(con
return table;
}
+
+#ifdef CONFIG_OUT_OF_LINE_PFN_TO_PAGE
+/*
+ * pfn <-> page translation. out-of-line version.
+ * (see asm-generic/memory_model.h)
+ */
+#if defined(CONFIG_FLATMEM)
+struct page *pfn_to_page(unsigned long pfn)
+{
+ return mem_map + (pfn - ARCH_PFN_OFFSET);
+}
+unsigned long page_to_pfn(struct page *page)
+{
+ return (page - mem_map) + ARCH_PFN_OFFSET;
+}
+#elif defined(CONFIG_DISCONTIGMEM)
+struct page *pfn_to_page(unsigned long pfn)
+{
+ int nid = arch_pfn_to_nid(pfn);
+ return NODE_DATA(nid)->node_mem_map + arch_local_page_offset(pfn,nid);
+}
+unsigned long page_to_pfn(struct page *page)
+{
+ struct zone *zone = page_zone(page);
+ return (page - zone->zone_mem_map) + zone->zone_start_pfn;
+
+}
+#elif defined(CONFIG_SPARSEMEM)
+struct page *pfn_to_page(unsigned long pfn)
+{
+ return __section_mem_map_addr(__pfn_to_section(pfn)) + pfn;
+}
+
+unsigned long page_to_pfn(struct page *page)
+{
+ long section_id = page_to_section(page);
+ return page - __section_mem_map_addr(__nr_to_section(section_id));
+}
+#endif /* CONFIG_FLATMEM/DISCONTIGMME/SPARSEMEM */
+EXPORT_SYMBOL(pfn_to_page);
+EXPORT_SYMBOL(page_to_pfn);
+#endif /* CONFIG_OUT_OF_LINE_PFN_TO_PAGE */
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH] unify pfn_to_page take3 [2/23] i386 pfn_to_page
2006-02-14 9:48 [PATCH] unify pfn_to_page take3 [0/23] KAMEZAWA Hiroyuki
2006-02-14 9:54 ` [PATCH] unify pfn_to_page take3 [1/23] generic functions KAMEZAWA Hiroyuki
@ 2006-02-14 9:56 ` KAMEZAWA Hiroyuki
2006-02-14 9:58 ` [PATCH] unify pfn_to_page take3 [3/23] x86_64 pfn_to_page KAMEZAWA Hiroyuki
` (21 subsequent siblings)
23 siblings, 0 replies; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-14 9:56 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Andrew Morton
i386 can use generic funcs.
Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Index: testtree/include/asm-i386/mmzone.h
===================================================================
--- testtree.orig/include/asm-i386/mmzone.h
+++ testtree/include/asm-i386/mmzone.h
@@ -70,8 +70,6 @@ static inline int pfn_to_nid(unsigned lo
#endif
}
-#define node_localnr(pfn, nid) ((pfn) - node_data[nid]->node_start_pfn)
-
/*
* Following are macros that each numa implmentation must define.
*/
@@ -86,21 +84,6 @@ static inline int pfn_to_nid(unsigned lo
/* XXX: FIXME -- wli */
#define kern_addr_valid(kaddr) (0)
-#define pfn_to_page(pfn) \
-({ \
- unsigned long __pfn = pfn; \
- int __node = pfn_to_nid(__pfn); \
- &NODE_DATA(__node)->node_mem_map[node_localnr(__pfn,__node)]; \
-})
-
-#define page_to_pfn(pg) \
-({ \
- struct page *__page = pg; \
- struct zone *__zone = page_zone(__page); \
- (unsigned long)(__page - __zone->zone_mem_map) \
- + __zone->zone_start_pfn; \
-})
-
#ifdef CONFIG_X86_NUMAQ /* we have contiguous memory on NUMA-Q */
#define pfn_valid(pfn) ((pfn) < num_physpages)
#else
Index: testtree/include/asm-i386/page.h
===================================================================
--- testtree.orig/include/asm-i386/page.h
+++ testtree/include/asm-i386/page.h
@@ -126,8 +126,6 @@ extern int page_is_ram(unsigned long pag
#define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET))
#define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT)
#ifdef CONFIG_FLATMEM
-#define pfn_to_page(pfn) (mem_map + (pfn))
-#define page_to_pfn(page) ((unsigned long)((page) - mem_map))
#define pfn_valid(pfn) ((pfn) < max_mapnr)
#endif /* CONFIG_FLATMEM */
#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
@@ -141,6 +139,7 @@ extern int page_is_ram(unsigned long pag
#endif /* __KERNEL__ */
+#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
#endif /* _I386_PAGE_H */
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH] unify pfn_to_page take3 [3/23] x86_64 pfn_to_page
2006-02-14 9:48 [PATCH] unify pfn_to_page take3 [0/23] KAMEZAWA Hiroyuki
2006-02-14 9:54 ` [PATCH] unify pfn_to_page take3 [1/23] generic functions KAMEZAWA Hiroyuki
2006-02-14 9:56 ` [PATCH] unify pfn_to_page take3 [2/23] i386 pfn_to_page KAMEZAWA Hiroyuki
@ 2006-02-14 9:58 ` KAMEZAWA Hiroyuki
2006-02-14 10:02 ` [PATCH] unify pfn_to_page take3 [4/23] powerpc pfn_to_page KAMEZAWA Hiroyuki
` (20 subsequent siblings)
23 siblings, 0 replies; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-14 9:58 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Andrew Morton, Andi Kleen
x86_64 can use generic funcs.
For DISCONTIGMEM, CONFIG_OUT_OF_LINE_PFN_TO_PAGE is selected.
Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Index: testtree/arch/x86_64/mm/numa.c
===================================================================
--- testtree.orig/arch/x86_64/mm/numa.c
+++ testtree/arch/x86_64/mm/numa.c
@@ -369,21 +369,6 @@ EXPORT_SYMBOL(node_data);
* Should do that.
*/
-/* Requires pfn_valid(pfn) to be true */
-struct page *pfn_to_page(unsigned long pfn)
-{
- int nid = phys_to_nid(((unsigned long)(pfn)) << PAGE_SHIFT);
- return (pfn - node_start_pfn(nid)) + NODE_DATA(nid)->node_mem_map;
-}
-EXPORT_SYMBOL(pfn_to_page);
-
-unsigned long page_to_pfn(struct page *page)
-{
- return (long)(((page) - page_zone(page)->zone_mem_map) +
- page_zone(page)->zone_start_pfn);
-}
-EXPORT_SYMBOL(page_to_pfn);
-
int pfn_valid(unsigned long pfn)
{
unsigned nid;
Index: testtree/include/asm-x86_64/mmzone.h
===================================================================
--- testtree.orig/include/asm-x86_64/mmzone.h
+++ testtree/include/asm-x86_64/mmzone.h
@@ -39,12 +39,8 @@ static inline __attribute__((pure)) int
#define pfn_to_nid(pfn) phys_to_nid((unsigned long)(pfn) << PAGE_SHIFT)
#define kvaddr_to_nid(kaddr) phys_to_nid(__pa(kaddr))
-extern struct page *pfn_to_page(unsigned long pfn);
-extern unsigned long page_to_pfn(struct page *page);
extern int pfn_valid(unsigned long pfn);
#endif
-#define local_mapnr(kvaddr) \
- ( (__pa(kvaddr) >> PAGE_SHIFT) - node_start_pfn(kvaddr_to_nid(kvaddr)) )
#endif
#endif
Index: testtree/include/asm-x86_64/page.h
===================================================================
--- testtree.orig/include/asm-x86_64/page.h
+++ testtree/include/asm-x86_64/page.h
@@ -123,8 +123,6 @@ typedef struct { unsigned long pgprot; }
#define __boot_va(x) __va(x)
#define __boot_pa(x) __pa(x)
#ifdef CONFIG_FLATMEM
-#define pfn_to_page(pfn) (mem_map + (pfn))
-#define page_to_pfn(page) ((unsigned long)((page) - mem_map))
#define pfn_valid(pfn) ((pfn) < end_pfn)
#endif
@@ -140,6 +138,7 @@ typedef struct { unsigned long pgprot; }
#endif /* __KERNEL__ */
+#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
#endif /* _X86_64_PAGE_H */
Index: testtree/arch/x86_64/Kconfig
===================================================================
--- testtree.orig/arch/x86_64/Kconfig
+++ testtree/arch/x86_64/Kconfig
@@ -321,6 +321,10 @@ config HAVE_ARCH_EARLY_PFN_TO_NID
def_bool y
depends on NUMA
+config OUT_OF_LINE_PFN_TO_PAGE
+ def_bool y
+ depends on DISCONTIGMEM
+
config NR_CPUS
int "Maximum number of CPUs (2-256)"
range 2 256
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH] unify pfn_to_page take3 [4/23] powerpc pfn_to_page
2006-02-14 9:48 [PATCH] unify pfn_to_page take3 [0/23] KAMEZAWA Hiroyuki
` (2 preceding siblings ...)
2006-02-14 9:58 ` [PATCH] unify pfn_to_page take3 [3/23] x86_64 pfn_to_page KAMEZAWA Hiroyuki
@ 2006-02-14 10:02 ` KAMEZAWA Hiroyuki
2006-02-14 10:12 ` [PATCH] unify pfn_to_page take3 [5/23] alpha pfn_to_page KAMEZAWA Hiroyuki
` (19 subsequent siblings)
23 siblings, 0 replies; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-14 10:02 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: linuxppc-dev, Andrew Morton
PowerPC can use generic ones.
Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Index: testtree/include/asm-powerpc/page.h
===================================================================
--- testtree.orig/include/asm-powerpc/page.h
+++ testtree/include/asm-powerpc/page.h
@@ -69,8 +69,6 @@
#endif
#ifdef CONFIG_FLATMEM
-#define pfn_to_page(pfn) (mem_map + (pfn))
-#define page_to_pfn(page) ((unsigned long)((page) - mem_map))
#define pfn_valid(pfn) ((pfn) < max_mapnr)
#endif
@@ -200,6 +198,7 @@ extern void copy_user_page(void *to, voi
struct page *p);
extern int page_is_ram(unsigned long pfn);
+#include <asm-generic/memory_model.h>
#endif /* __ASSEMBLY__ */
#endif /* __KERNEL__ */
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH] unify pfn_to_page take3 [5/23] alpha pfn_to_page
2006-02-14 9:48 [PATCH] unify pfn_to_page take3 [0/23] KAMEZAWA Hiroyuki
` (3 preceding siblings ...)
2006-02-14 10:02 ` [PATCH] unify pfn_to_page take3 [4/23] powerpc pfn_to_page KAMEZAWA Hiroyuki
@ 2006-02-14 10:12 ` KAMEZAWA Hiroyuki
2006-02-14 10:19 ` [PATCH] unify pfn_to_page take3 [6/23] arm pfn_to_page KAMEZAWA Hiroyuki
` (18 subsequent siblings)
23 siblings, 0 replies; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-14 10:12 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Andrew Morton, axp-list
Alpha can use generic funcs.
Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Index: testtree/include/asm-alpha/mmzone.h
===================================================================
--- testtree.orig/include/asm-alpha/mmzone.h
+++ testtree/include/asm-alpha/mmzone.h
@@ -59,9 +59,6 @@ PLAT_NODE_DATA_LOCALNR(unsigned long p,
#define kvaddr_to_nid(kaddr) pa_to_nid(__pa(kaddr))
#define node_start_pfn(nid) (NODE_DATA(nid)->node_start_pfn)
-#define local_mapnr(kvaddr) \
- ((__pa(kvaddr) >> PAGE_SHIFT) - node_start_pfn(kvaddr_to_nid(kvaddr)))
-
/*
* Given a kaddr, LOCAL_BASE_ADDR finds the owning node of the memory
* and returns the kaddr corresponding to first physical page in the
@@ -104,19 +101,8 @@ PLAT_NODE_DATA_LOCALNR(unsigned long p,
__xx; \
})
-#define pfn_to_page(pfn) \
-({ \
- unsigned long kaddr = (unsigned long)__va((pfn) << PAGE_SHIFT); \
- (NODE_DATA(kvaddr_to_nid(kaddr))->node_mem_map + local_mapnr(kaddr)); \
-})
-
-#define page_to_pfn(page) \
- ((page) - page_zone(page)->zone_mem_map + \
- (page_zone(page)->zone_start_pfn))
-
#define page_to_pa(page) \
- ((( (page) - page_zone(page)->zone_mem_map ) \
- + page_zone(page)->zone_start_pfn) << PAGE_SHIFT)
+ (page_to_pfn(page) << PAGE_SHIFT)
#define pfn_to_nid(pfn) pa_to_nid(((u64)(pfn) << PAGE_SHIFT))
#define pfn_valid(pfn) \
Index: testtree/include/asm-alpha/page.h
===================================================================
--- testtree.orig/include/asm-alpha/page.h
+++ testtree/include/asm-alpha/page.h
@@ -85,8 +85,6 @@ typedef unsigned long pgprot_t;
#define __pa(x) ((unsigned long) (x) - PAGE_OFFSET)
#define __va(x) ((void *)((unsigned long) (x) + PAGE_OFFSET))
#ifndef CONFIG_DISCONTIGMEM
-#define pfn_to_page(pfn) (mem_map + (pfn))
-#define page_to_pfn(page) ((unsigned long)((page) - mem_map))
#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
#define pfn_valid(pfn) ((pfn) < max_mapnr)
@@ -95,9 +93,9 @@ typedef unsigned long pgprot_t;
#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \
VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
-
#endif /* __KERNEL__ */
+#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
#endif /* _ALPHA_PAGE_H */
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH] unify pfn_to_page take3 [6/23] arm pfn_to_page
2006-02-14 9:48 [PATCH] unify pfn_to_page take3 [0/23] KAMEZAWA Hiroyuki
` (4 preceding siblings ...)
2006-02-14 10:12 ` [PATCH] unify pfn_to_page take3 [5/23] alpha pfn_to_page KAMEZAWA Hiroyuki
@ 2006-02-14 10:19 ` KAMEZAWA Hiroyuki
2006-02-14 10:21 ` [PATCH] unify pfn_to_page take3 [7/23] arm26 pfn_to_page KAMEZAWA Hiroyuki
` (17 subsequent siblings)
23 siblings, 0 replies; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-14 10:19 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Andrew Morton
ARM can use generic funcs.
PFN_TO_NID, LOCAL_MAP_NR are defined by sub-archs.
Signed-Off-By: KAMEZAWA Hirotuki <kamezawa.hiroyu@jp.fujitsu.com>
Index: testtree/include/asm-arm/memory.h
===================================================================
--- testtree.orig/include/asm-arm/memory.h
+++ testtree/include/asm-arm/memory.h
@@ -172,9 +172,7 @@ static inline __deprecated void *bus_to_
* virt_addr_valid(k) indicates whether a virtual address is valid
*/
#ifndef CONFIG_DISCONTIGMEM
-
-#define page_to_pfn(page) (((page) - mem_map) + PHYS_PFN_OFFSET)
-#define pfn_to_page(pfn) ((mem_map + (pfn)) - PHYS_PFN_OFFSET)
+#define ARCH_PFN_OFFSET (PHYS_PFN_OFFSET)
#define pfn_valid(pfn) ((pfn) >= PHYS_PFN_OFFSET && (pfn) < (PHYS_PFN_OFFSET + max_mapnr))
#define virt_to_page(kaddr) (pfn_to_page(__pa(kaddr) >> PAGE_SHIFT))
@@ -189,13 +187,8 @@ static inline __deprecated void *bus_to_
* around in memory.
*/
#include <linux/numa.h>
-
-#define page_to_pfn(page) \
- (( (page) - page_zone(page)->zone_mem_map) \
- + page_zone(page)->zone_start_pfn)
-
-#define pfn_to_page(pfn) \
- (PFN_TO_MAPBASE(pfn) + LOCAL_MAP_NR((pfn) << PAGE_SHIFT))
+#define arch_pfn_to_nid(pfn) (PFN_TO_NID(pfn))
+#define arch_local_page_offset(pfn, nid) (LOCAL_MAP_NR((pfn) << PAGE_OFFSET))
#define pfn_valid(pfn) \
({ \
@@ -222,6 +215,7 @@ static inline __deprecated void *bus_to_
#endif /* !CONFIG_DISCONTIGMEM */
+
/*
* For BIO. "will die". Kill me when bio_to_phys() and bvec_to_phys() die.
*/
@@ -243,4 +237,6 @@ static inline __deprecated void *bus_to_
#endif
+#include <asm-generic/memory_model.h>
+
#endif
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH] unify pfn_to_page take3 [7/23] arm26 pfn_to_page
2006-02-14 9:48 [PATCH] unify pfn_to_page take3 [0/23] KAMEZAWA Hiroyuki
` (5 preceding siblings ...)
2006-02-14 10:19 ` [PATCH] unify pfn_to_page take3 [6/23] arm pfn_to_page KAMEZAWA Hiroyuki
@ 2006-02-14 10:21 ` KAMEZAWA Hiroyuki
2006-02-14 10:23 ` [PATCH] unify pfn_to_page take3 [8/23] cris pfn_to_page KAMEZAWA Hiroyuki
` (16 subsequent siblings)
23 siblings, 0 replies; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-14 10:21 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Andrew Morton
arm26 can use generic funcs.
Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Index: testtree/include/asm-arm26/memory.h
===================================================================
--- testtree.orig/include/asm-arm26/memory.h
+++ testtree/include/asm-arm26/memory.h
@@ -11,7 +11,6 @@
*/
#ifndef __ASM_ARM_MEMORY_H
#define __ASM_ARM_MEMORY_H
-
/*
* User space: 26MB
*/
@@ -81,8 +80,7 @@ static inline void *phys_to_virt(unsigne
* virt_to_page(k) convert a _valid_ virtual address to struct page *
* virt_addr_valid(k) indicates whether a virtual address is valid
*/
-#define page_to_pfn(page) (((page) - mem_map) + PHYS_PFN_OFFSET)
-#define pfn_to_page(pfn) ((mem_map + (pfn)) - PHYS_PFN_OFFSET)
+#define ARCH_PFN_OFFSET (PHYS_PFN_OFFSET)
#define pfn_valid(pfn) ((pfn) >= PHYS_PFN_OFFSET && (pfn) < (PHYS_PFN_OFFSET + max_mapnr))
#define virt_to_page(kaddr) (pfn_to_page(__pa(kaddr) >> PAGE_SHIFT))
@@ -98,4 +96,5 @@ static inline void *phys_to_virt(unsigne
*/
#define page_to_bus(page) (page_address(page))
+#include <asm-generic/memory_model.h>
#endif
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH] unify pfn_to_page take3 [8/23] cris pfn_to_page
2006-02-14 9:48 [PATCH] unify pfn_to_page take3 [0/23] KAMEZAWA Hiroyuki
` (6 preceding siblings ...)
2006-02-14 10:21 ` [PATCH] unify pfn_to_page take3 [7/23] arm26 pfn_to_page KAMEZAWA Hiroyuki
@ 2006-02-14 10:23 ` KAMEZAWA Hiroyuki
2006-02-14 10:25 ` [PATCH] unify pfn_to_page take3 [9/23] frv pfn_tp_page KAMEZAWA Hiroyuki
` (15 subsequent siblings)
23 siblings, 0 replies; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-14 10:23 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Andrew Morton, mikael.starvik
cris can use generic funcs.
Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Index: testtree/include/asm-cris/page.h
===================================================================
--- testtree.orig/include/asm-cris/page.h
+++ testtree/include/asm-cris/page.h
@@ -43,8 +43,7 @@ typedef struct { unsigned long pgprot; }
/* On CRIS the PFN numbers doesn't start at 0 so we have to compensate */
/* for that before indexing into the page table starting at mem_map */
-#define pfn_to_page(pfn) (mem_map + ((pfn) - (PAGE_OFFSET >> PAGE_SHIFT)))
-#define page_to_pfn(page) ((unsigned long)((page) - mem_map) + (PAGE_OFFSET >> PAGE_SHIFT))
+#define ARCH_PFN_OFFSET (PAGE_OFFSET >> PAGE_SHIFT)
#define pfn_valid(pfn) (((pfn) - (PAGE_OFFSET >> PAGE_SHIFT)) < max_mapnr)
/* to index into the page map. our pages all start at physical addr PAGE_OFFSET so
@@ -77,6 +76,7 @@ typedef struct { unsigned long pgprot; }
#endif /* __KERNEL__ */
+#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
#endif /* _CRIS_PAGE_H */
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH] unify pfn_to_page take3 [9/23] frv pfn_tp_page
2006-02-14 9:48 [PATCH] unify pfn_to_page take3 [0/23] KAMEZAWA Hiroyuki
` (7 preceding siblings ...)
2006-02-14 10:23 ` [PATCH] unify pfn_to_page take3 [8/23] cris pfn_to_page KAMEZAWA Hiroyuki
@ 2006-02-14 10:25 ` KAMEZAWA Hiroyuki
2006-02-14 10:28 ` [PATCH] unify pfn_to_page take3 [10/23] h8300 pfn_to_page KAMEZAWA Hiroyuki
` (14 subsequent siblings)
23 siblings, 0 replies; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-14 10:25 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Andrew Morton, dhowells
FRV can use generic funcs.
Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Index: testtree/include/asm-frv/page.h
===================================================================
--- testtree.orig/include/asm-frv/page.h
+++ testtree/include/asm-frv/page.h
@@ -57,13 +57,9 @@ extern unsigned long min_low_pfn;
extern unsigned long max_pfn;
#ifdef CONFIG_MMU
-#define pfn_to_page(pfn) (mem_map + (pfn))
-#define page_to_pfn(page) ((unsigned long) ((page) - mem_map))
#define pfn_valid(pfn) ((pfn) < max_mapnr)
-
#else
-#define pfn_to_page(pfn) (&mem_map[(pfn) - (PAGE_OFFSET >> PAGE_SHIFT)])
-#define page_to_pfn(page) ((PAGE_OFFSET >> PAGE_SHIFT) + (unsigned long) ((page) - mem_map))
+#define ARCH_PFN_OFFSET (PAGE_OFFSET >> PAGE_SHIFT)
#define pfn_valid(pfn) ((pfn) >= min_low_pfn && (pfn) < max_low_pfn)
#endif
@@ -87,6 +83,7 @@ extern unsigned long max_pfn;
#define WANT_PAGE_VIRTUAL 1
#endif
+#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
#endif /* _ASM_PAGE_H */
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH] unify pfn_to_page take3 [10/23] h8300 pfn_to_page
2006-02-14 9:48 [PATCH] unify pfn_to_page take3 [0/23] KAMEZAWA Hiroyuki
` (8 preceding siblings ...)
2006-02-14 10:25 ` [PATCH] unify pfn_to_page take3 [9/23] frv pfn_tp_page KAMEZAWA Hiroyuki
@ 2006-02-14 10:28 ` KAMEZAWA Hiroyuki
2006-02-14 10:33 ` [PATCH] unify pfn_to_page take3 [11/23] m32r pfn_to_page KAMEZAWA Hiroyuki
` (13 subsequent siblings)
23 siblings, 0 replies; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-14 10:28 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Andrew Morton
H8300 can use generic funcs.
Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Index: testtree/include/asm-h8300/page.h
===================================================================
--- testtree.orig/include/asm-h8300/page.h
+++ testtree/include/asm-h8300/page.h
@@ -71,8 +71,7 @@ extern unsigned long memory_end;
#define page_to_virt(page) ((((page) - mem_map) << PAGE_SHIFT) + PAGE_OFFSET)
#define pfn_valid(page) (page < max_mapnr)
-#define pfn_to_page(pfn) virt_to_page(pfn_to_virt(pfn))
-#define page_to_pfn(page) virt_to_pfn(page_to_virt(page))
+#define ARCH_PFH_OFFSET (PAGE_OFFSET >> PAGE_SHIFT)
#define virt_addr_valid(kaddr) (((void *)(kaddr) >= (void *)PAGE_OFFSET) && \
((void *)(kaddr) < (void *)memory_end))
@@ -81,6 +80,7 @@ extern unsigned long memory_end;
#endif /* __KERNEL__ */
+#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
#endif /* _H8300_PAGE_H */
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH] unify pfn_to_page take3 [11/23] m32r pfn_to_page
2006-02-14 9:48 [PATCH] unify pfn_to_page take3 [0/23] KAMEZAWA Hiroyuki
` (9 preceding siblings ...)
2006-02-14 10:28 ` [PATCH] unify pfn_to_page take3 [10/23] h8300 pfn_to_page KAMEZAWA Hiroyuki
@ 2006-02-14 10:33 ` KAMEZAWA Hiroyuki
2006-02-14 10:36 ` [PATCH] unify pfn_to_page take3 [12/23] mips pfn_to_page KAMEZAWA Hiroyuki
` (12 subsequent siblings)
23 siblings, 0 replies; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-14 10:33 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Andrew Morton
m32r can use generic funcs.
Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Index: testtree/include/asm-m32r/mmzone.h
===================================================================
--- testtree.orig/include/asm-m32r/mmzone.h
+++ testtree/include/asm-m32r/mmzone.h
@@ -21,20 +21,6 @@ extern struct pglist_data *node_data[];
__pgdat->node_start_pfn + __pgdat->node_spanned_pages - 1; \
})
-#define pfn_to_page(pfn) \
-({ \
- unsigned long __pfn = pfn; \
- int __node = pfn_to_nid(__pfn); \
- &NODE_DATA(__node)->node_mem_map[node_localnr(__pfn,__node)]; \
-})
-
-#define page_to_pfn(pg) \
-({ \
- struct page *__page = pg; \
- struct zone *__zone = page_zone(__page); \
- (unsigned long)(__page - __zone->zone_mem_map) \
- + __zone->zone_start_pfn; \
-})
#define pmd_page(pmd) (pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT))
/*
* pfn_valid should be made as fast as possible, and the current definition
Index: testtree/include/asm-m32r/page.h
===================================================================
--- testtree.orig/include/asm-m32r/page.h
+++ testtree/include/asm-m32r/page.h
@@ -76,9 +76,7 @@ typedef struct { unsigned long pgprot; }
#ifndef CONFIG_DISCONTIGMEM
#define PFN_BASE (CONFIG_MEMORY_START >> PAGE_SHIFT)
-#define pfn_to_page(pfn) (mem_map + ((pfn) - PFN_BASE))
-#define page_to_pfn(page) \
- ((unsigned long)((page) - mem_map) + PFN_BASE)
+#define ARCH_PFN_OFFSET PFN_BASE
#define pfn_valid(pfn) (((pfn) - PFN_BASE) < max_mapnr)
#endif /* !CONFIG_DISCONTIGMEM */
@@ -92,6 +90,7 @@ typedef struct { unsigned long pgprot; }
#endif /* __KERNEL__ */
+#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
#endif /* _ASM_M32R_PAGE_H */
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH] unify pfn_to_page take3 [12/23] mips pfn_to_page
2006-02-14 9:48 [PATCH] unify pfn_to_page take3 [0/23] KAMEZAWA Hiroyuki
` (10 preceding siblings ...)
2006-02-14 10:33 ` [PATCH] unify pfn_to_page take3 [11/23] m32r pfn_to_page KAMEZAWA Hiroyuki
@ 2006-02-14 10:36 ` KAMEZAWA Hiroyuki
2006-02-14 10:40 ` [PATCH] unify pfn_to_page take3 [13/23] parisc pfn_to_page KAMEZAWA Hiroyuki
` (11 subsequent siblings)
23 siblings, 0 replies; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-14 10:36 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Andrew Morton, linux-mips
MIPS can use generic funcs.
Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Index: testtree/include/asm-mips/mmzone.h
===================================================================
--- testtree.orig/include/asm-mips/mmzone.h
+++ testtree/include/asm-mips/mmzone.h
@@ -22,20 +22,6 @@
NODE_DATA(__n)->node_spanned_pages) : 0);\
})
-#define pfn_to_page(pfn) \
-({ \
- unsigned long __pfn = (pfn); \
- pg_data_t *__pg = NODE_DATA(pfn_to_nid(__pfn)); \
- __pg->node_mem_map + (__pfn - __pg->node_start_pfn); \
-})
-
-#define page_to_pfn(p) \
-({ \
- struct page *__p = (p); \
- struct zone *__z = page_zone(__p); \
- ((__p - __z->zone_mem_map) + __z->zone_start_pfn); \
-})
-
/* XXX: FIXME -- wli */
#define kern_addr_valid(addr) (0)
Index: testtree/include/asm-mips/page.h
===================================================================
--- testtree.orig/include/asm-mips/page.h
+++ testtree/include/asm-mips/page.h
@@ -17,6 +17,7 @@
#endif
+
/*
* PAGE_SHIFT determines the page size
*/
@@ -140,8 +141,6 @@ typedef struct { unsigned long pgprot; }
#define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT)
#ifndef CONFIG_NEED_MULTIPLE_NODES
-#define pfn_to_page(pfn) (mem_map + (pfn))
-#define page_to_pfn(page) ((unsigned long)((page) - mem_map))
#define pfn_valid(pfn) ((pfn) < max_mapnr)
#endif
@@ -160,6 +159,7 @@ typedef struct { unsigned long pgprot; }
#define WANT_PAGE_VIRTUAL
#endif
+#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
#endif /* _ASM_PAGE_H */
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH] unify pfn_to_page take3 [13/23] parisc pfn_to_page
2006-02-14 9:48 [PATCH] unify pfn_to_page take3 [0/23] KAMEZAWA Hiroyuki
` (11 preceding siblings ...)
2006-02-14 10:36 ` [PATCH] unify pfn_to_page take3 [12/23] mips pfn_to_page KAMEZAWA Hiroyuki
@ 2006-02-14 10:40 ` KAMEZAWA Hiroyuki
2006-02-14 10:43 ` [PATCH] unify pfn_to_page take3 [14/23] ppc pfn_to_page KAMEZAWA Hiroyuki
` (10 subsequent siblings)
23 siblings, 0 replies; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-14 10:40 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Andrew Morton, kyle, grundler, matthew
PARISC can use generic funcs.
Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Index: testtree/include/asm-parisc/mmzone.h
===================================================================
--- testtree.orig/include/asm-parisc/mmzone.h
+++ testtree/include/asm-parisc/mmzone.h
@@ -25,23 +25,6 @@ extern struct node_map_data node_data[];
pg_data_t *__pgdat = NODE_DATA(nid); \
__pgdat->node_start_pfn + __pgdat->node_spanned_pages; \
})
-#define node_localnr(pfn, nid) ((pfn) - node_start_pfn(nid))
-
-#define pfn_to_page(pfn) \
-({ \
- unsigned long __pfn = (pfn); \
- int __node = pfn_to_nid(__pfn); \
- &NODE_DATA(__node)->node_mem_map[node_localnr(__pfn,__node)]; \
-})
-
-#define page_to_pfn(pg) \
-({ \
- struct page *__page = pg; \
- struct zone *__zone = page_zone(__page); \
- BUG_ON(__zone == NULL); \
- (unsigned long)(__page - __zone->zone_mem_map) \
- + __zone->zone_start_pfn; \
-})
/* We have these possible memory map layouts:
* Astro: 0-3.75, 67.75-68, 4-64
Index: testtree/include/asm-parisc/page.h
===================================================================
--- testtree.orig/include/asm-parisc/page.h
+++ testtree/include/asm-parisc/page.h
@@ -130,8 +130,6 @@ extern int npmem_ranges;
#define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET))
#ifndef CONFIG_DISCONTIGMEM
-#define pfn_to_page(pfn) (mem_map + (pfn))
-#define page_to_pfn(page) ((unsigned long)((page) - mem_map))
#define pfn_valid(pfn) ((pfn) < max_mapnr)
#endif /* CONFIG_DISCONTIGMEM */
@@ -152,6 +150,7 @@ extern int npmem_ranges;
#endif /* __KERNEL__ */
+#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
#endif /* _PARISC_PAGE_H */
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH] unify pfn_to_page take3 [14/23] ppc pfn_to_page
2006-02-14 9:48 [PATCH] unify pfn_to_page take3 [0/23] KAMEZAWA Hiroyuki
` (12 preceding siblings ...)
2006-02-14 10:40 ` [PATCH] unify pfn_to_page take3 [13/23] parisc pfn_to_page KAMEZAWA Hiroyuki
@ 2006-02-14 10:43 ` KAMEZAWA Hiroyuki
2006-02-14 10:45 ` [PATCH] unify pfn_to_page take3 [15/23] s390 pfn_to_page KAMEZAWA Hiroyuki
` (9 subsequent siblings)
23 siblings, 0 replies; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-14 10:43 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Andrew Morton, linuxppc-dev
PPC can use generic funcs.
Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Index: testtree/include/asm-ppc/page.h
===================================================================
--- testtree.orig/include/asm-ppc/page.h
+++ testtree/include/asm-ppc/page.h
@@ -149,8 +149,7 @@ extern int page_is_ram(unsigned long pfn
#define __pa(x) ___pa((unsigned long)(x))
#define __va(x) ((void *)(___va((unsigned long)(x))))
-#define pfn_to_page(pfn) (mem_map + ((pfn) - PPC_PGSTART))
-#define page_to_pfn(page) ((unsigned long)((page) - mem_map) + PPC_PGSTART)
+#define ARCH_PFN_OFFSET (PPC_PGSTART)
#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
#define page_to_virt(page) __va(page_to_pfn(page) << PAGE_SHIFT)
@@ -175,5 +174,6 @@ extern __inline__ int get_order(unsigned
/* We do define AT_SYSINFO_EHDR but don't use the gate mecanism */
#define __HAVE_ARCH_GATE_AREA 1
+#include <asm-generic/memory_model.h>
#endif /* __KERNEL__ */
#endif /* _PPC_PAGE_H */
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH] unify pfn_to_page take3 [15/23] s390 pfn_to_page
2006-02-14 9:48 [PATCH] unify pfn_to_page take3 [0/23] KAMEZAWA Hiroyuki
` (13 preceding siblings ...)
2006-02-14 10:43 ` [PATCH] unify pfn_to_page take3 [14/23] ppc pfn_to_page KAMEZAWA Hiroyuki
@ 2006-02-14 10:45 ` KAMEZAWA Hiroyuki
2006-02-14 10:47 ` [PATCH] unify pfn_to_page take3 [16/23] sh pfn_to_page KAMEZAWA Hiroyuki
` (8 subsequent siblings)
23 siblings, 0 replies; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-14 10:45 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Andrew Morton
s390 can use generic funcs.
Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Index: testtree/include/asm-s390/page.h
===================================================================
--- testtree.orig/include/asm-s390/page.h
+++ testtree/include/asm-s390/page.h
@@ -181,8 +181,6 @@ page_get_storage_key(unsigned long addr)
#define PAGE_OFFSET 0x0UL
#define __pa(x) (unsigned long)(x)
#define __va(x) (void *)(unsigned long)(x)
-#define pfn_to_page(pfn) (mem_map + (pfn))
-#define page_to_pfn(page) ((unsigned long)((page) - mem_map))
#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
#define pfn_valid(pfn) ((pfn) < max_mapnr)
@@ -193,6 +191,7 @@ page_get_storage_key(unsigned long addr)
#endif /* __KERNEL__ */
+#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
#endif /* _S390_PAGE_H */
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH] unify pfn_to_page take3 [16/23] sh pfn_to_page
2006-02-14 9:48 [PATCH] unify pfn_to_page take3 [0/23] KAMEZAWA Hiroyuki
` (14 preceding siblings ...)
2006-02-14 10:45 ` [PATCH] unify pfn_to_page take3 [15/23] s390 pfn_to_page KAMEZAWA Hiroyuki
@ 2006-02-14 10:47 ` KAMEZAWA Hiroyuki
2006-02-14 10:51 ` [PATCH] unify pfn_to_page take3 [17/23] sh64 pfn_to_page KAMEZAWA Hiroyuki
` (7 subsequent siblings)
23 siblings, 0 replies; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-14 10:47 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Andrew Morton, lethal
sh can use generic funcs.
Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Index: testtree/include/asm-sh/page.h
===================================================================
--- testtree.orig/include/asm-sh/page.h
+++ testtree/include/asm-sh/page.h
@@ -105,9 +105,7 @@ typedef struct { unsigned long pgprot; }
/* PFN start number, because of __MEMORY_START */
#define PFN_START (__MEMORY_START >> PAGE_SHIFT)
-
-#define pfn_to_page(pfn) (mem_map + (pfn) - PFN_START)
-#define page_to_pfn(page) ((unsigned long)((page) - mem_map) + PFN_START)
+#define ARCH_PFN_OFFSET (PFN_START)
#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
#define pfn_valid(pfn) (((pfn) - PFN_START) < max_mapnr)
#define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT)
@@ -117,6 +115,7 @@ typedef struct { unsigned long pgprot; }
#endif /* __KERNEL__ */
+#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
#endif /* __ASM_SH_PAGE_H */
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH] unify pfn_to_page take3 [17/23] sh64 pfn_to_page
2006-02-14 9:48 [PATCH] unify pfn_to_page take3 [0/23] KAMEZAWA Hiroyuki
` (15 preceding siblings ...)
2006-02-14 10:47 ` [PATCH] unify pfn_to_page take3 [16/23] sh pfn_to_page KAMEZAWA Hiroyuki
@ 2006-02-14 10:51 ` KAMEZAWA Hiroyuki
2006-02-14 10:54 ` [PATCH] unify pfn_to_page take3 [18/23] sparc pfn_to_page KAMEZAWA Hiroyuki
` (6 subsequent siblings)
23 siblings, 0 replies; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-14 10:51 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Andrew Morton, lethal
sh64 can use generic funcs.
Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Index: testtree/include/asm-sh64/page.h
===================================================================
--- testtree.orig/include/asm-sh64/page.h
+++ testtree/include/asm-sh64/page.h
@@ -105,9 +105,7 @@ typedef struct { unsigned long pgprot; }
/* PFN start number, because of __MEMORY_START */
#define PFN_START (__MEMORY_START >> PAGE_SHIFT)
-
-#define pfn_to_page(pfn) (mem_map + (pfn) - PFN_START)
-#define page_to_pfn(page) ((unsigned long)((page) - mem_map) + PFN_START)
+#define ARCH_PFN_OFFSET (PFN_START)
#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
#define pfn_valid(pfn) (((pfn) - PFN_START) < max_mapnr)
#define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT)
@@ -117,6 +115,7 @@ typedef struct { unsigned long pgprot; }
#endif /* __KERNEL__ */
+#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
#endif /* __ASM_SH64_PAGE_H */
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH] unify pfn_to_page take3 [18/23] sparc pfn_to_page
2006-02-14 9:48 [PATCH] unify pfn_to_page take3 [0/23] KAMEZAWA Hiroyuki
` (16 preceding siblings ...)
2006-02-14 10:51 ` [PATCH] unify pfn_to_page take3 [17/23] sh64 pfn_to_page KAMEZAWA Hiroyuki
@ 2006-02-14 10:54 ` KAMEZAWA Hiroyuki
2006-02-14 10:56 ` [PATCH] unify pfn_to_page take3 [19/23] sparc64 pfn_to_page KAMEZAWA Hiroyuki
` (5 subsequent siblings)
23 siblings, 0 replies; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-14 10:54 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Andrew Morton, sparclinux
sparc can use generic funcs.
Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Index: testtree/include/asm-sparc/page.h
===================================================================
--- testtree.orig/include/asm-sparc/page.h
+++ testtree/include/asm-sparc/page.h
@@ -9,6 +9,7 @@
#define _SPARC_PAGE_H
#include <linux/config.h>
+
#ifdef CONFIG_SUN4
#define PAGE_SHIFT 13
#else
@@ -152,8 +153,7 @@ extern unsigned long pfn_base;
#define virt_to_phys __pa
#define phys_to_virt __va
-#define pfn_to_page(pfn) (mem_map + ((pfn)-(pfn_base)))
-#define page_to_pfn(page) ((unsigned long)(((page) - mem_map) + pfn_base))
+#define ARCH_PFN_OFFSET (pfn_base)
#define virt_to_page(kaddr) (mem_map + ((((unsigned long)(kaddr)-PAGE_OFFSET)>>PAGE_SHIFT)))
#define pfn_valid(pfn) (((pfn) >= (pfn_base)) && (((pfn)-(pfn_base)) < max_mapnr))
@@ -164,6 +164,7 @@ extern unsigned long pfn_base;
#endif /* __KERNEL__ */
+#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
#endif /* _SPARC_PAGE_H */
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH] unify pfn_to_page take3 [19/23] sparc64 pfn_to_page
2006-02-14 9:48 [PATCH] unify pfn_to_page take3 [0/23] KAMEZAWA Hiroyuki
` (17 preceding siblings ...)
2006-02-14 10:54 ` [PATCH] unify pfn_to_page take3 [18/23] sparc pfn_to_page KAMEZAWA Hiroyuki
@ 2006-02-14 10:56 ` KAMEZAWA Hiroyuki
2006-02-14 10:58 ` [PATCH] unify pfn_to_page take3 [20/23] UML pfn_to_page KAMEZAWA Hiroyuki
` (4 subsequent siblings)
23 siblings, 0 replies; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-14 10:56 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Andrew Morton, davem
sparc64 can use generic funcs.
CONFIG_OUT_OF_LINE_PFN_TO_PAGE is selected.
Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Index: testtree/arch/sparc64/Kconfig
===================================================================
--- testtree.orig/arch/sparc64/Kconfig
+++ testtree/arch/sparc64/Kconfig
@@ -34,6 +34,10 @@ config ARCH_MAY_HAVE_PC_FDC
bool
default y
+config OUT_OF_LINE_PFN_TO_PAGE
+ bool
+ default y
+
choice
prompt "Kernel page size"
default SPARC64_PAGE_SIZE_8KB
Index: testtree/arch/sparc64/mm/init.c
===================================================================
--- testtree.orig/arch/sparc64/mm/init.c
+++ testtree/arch/sparc64/mm/init.c
@@ -320,16 +320,6 @@ void __kprobes flush_icache_range(unsign
}
}
-unsigned long page_to_pfn(struct page *page)
-{
- return (unsigned long) ((page - mem_map) + pfn_base);
-}
-
-struct page *pfn_to_page(unsigned long pfn)
-{
- return (mem_map + (pfn - pfn_base));
-}
-
void show_mem(void)
{
printk("Mem-info:\n");
Index: testtree/include/asm-sparc64/page.h
===================================================================
--- testtree.orig/include/asm-sparc64/page.h
+++ testtree/include/asm-sparc64/page.h
@@ -129,8 +129,8 @@ typedef unsigned long pgprot_t;
* the first physical page in the machine is at some huge physical address,
* such as 4GB. This is common on a partitioned E10000, for example.
*/
-extern struct page *pfn_to_page(unsigned long pfn);
-extern unsigned long page_to_pfn(struct page *);
+/* pfn_base is declared in pgtable.h */
+#define ARCH_PFN_OFFSET (pfn_base)
#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr)>>PAGE_SHIFT)
@@ -147,6 +147,7 @@ extern unsigned long page_to_pfn(struct
#endif /* !(__KERNEL__) */
+#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
#endif /* !(_SPARC64_PAGE_H) */
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH] unify pfn_to_page take3 [20/23] UML pfn_to_page
2006-02-14 9:48 [PATCH] unify pfn_to_page take3 [0/23] KAMEZAWA Hiroyuki
` (18 preceding siblings ...)
2006-02-14 10:56 ` [PATCH] unify pfn_to_page take3 [19/23] sparc64 pfn_to_page KAMEZAWA Hiroyuki
@ 2006-02-14 10:58 ` KAMEZAWA Hiroyuki
2006-02-14 10:59 ` [PATCH] unify pfn_to_page take3 [21/23] v850 pfn_to_page KAMEZAWA Hiroyuki
` (3 subsequent siblings)
23 siblings, 0 replies; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-14 10:58 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Andrew Morton
UML can use generic funcs.
Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Index: testtree/include/asm-um/page.h
===================================================================
--- testtree.orig/include/asm-um/page.h
+++ testtree/include/asm-um/page.h
@@ -106,9 +106,6 @@ extern unsigned long uml_physmem;
#define __pa(virt) to_phys((void *) (unsigned long) (virt))
#define __va(phys) to_virt((unsigned long) (phys))
-#define page_to_pfn(page) ((page) - mem_map)
-#define pfn_to_page(pfn) (mem_map + (pfn))
-
#define phys_to_pfn(p) ((p) >> PAGE_SHIFT)
#define pfn_to_phys(pfn) ((pfn) << PAGE_SHIFT)
@@ -121,6 +118,7 @@ extern struct page *arch_validate(struct
extern void arch_free_page(struct page *page, int order);
#define HAVE_ARCH_FREE_PAGE
+#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
#endif
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH] unify pfn_to_page take3 [21/23] v850 pfn_to_page
2006-02-14 9:48 [PATCH] unify pfn_to_page take3 [0/23] KAMEZAWA Hiroyuki
` (19 preceding siblings ...)
2006-02-14 10:58 ` [PATCH] unify pfn_to_page take3 [20/23] UML pfn_to_page KAMEZAWA Hiroyuki
@ 2006-02-14 10:59 ` KAMEZAWA Hiroyuki
2006-02-14 11:01 ` [PATCH] unify pfn_to_page take3 [22/23] xtensa pfn_to_page KAMEZAWA Hiroyuki
` (2 subsequent siblings)
23 siblings, 0 replies; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-14 10:59 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Andrew Morton
v850 can use generic funcs.
Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Index: testtree/include/asm-v850/page.h
===================================================================
--- testtree.orig/include/asm-v850/page.h
+++ testtree/include/asm-v850/page.h
@@ -111,8 +111,7 @@ typedef unsigned long pgprot_t;
#define page_to_virt(page) \
((((page) - mem_map) << PAGE_SHIFT) + PAGE_OFFSET)
-#define pfn_to_page(pfn) virt_to_page (pfn_to_virt (pfn))
-#define page_to_pfn(page) virt_to_pfn (page_to_virt (page))
+#define ARCH_PFN_OFFSET (PAGE_OFFSET >> PAGE_SHIFT)
#define pfn_valid(pfn) ((pfn) < max_mapnr)
#define virt_addr_valid(kaddr) \
@@ -125,6 +124,7 @@ typedef unsigned long pgprot_t;
#endif /* KERNEL */
+#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
#endif /* __V850_PAGE_H__ */
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH] unify pfn_to_page take3 [22/23] xtensa pfn_to_page
2006-02-14 9:48 [PATCH] unify pfn_to_page take3 [0/23] KAMEZAWA Hiroyuki
` (20 preceding siblings ...)
2006-02-14 10:59 ` [PATCH] unify pfn_to_page take3 [21/23] v850 pfn_to_page KAMEZAWA Hiroyuki
@ 2006-02-14 11:01 ` KAMEZAWA Hiroyuki
2006-02-14 11:04 ` [PATCH] unify pfn_to_page take3 [23/23] ia64 pfn_to_page KAMEZAWA Hiroyuki
2006-02-15 5:33 ` [PATCH] unify pfn_to_page take3 [0/23] Andrew Morton
23 siblings, 0 replies; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-14 11:01 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Andrew Morton
xtensa can use generic funcs.
Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Index: testtree/include/asm-xtensa/page.h
===================================================================
--- testtree.orig/include/asm-xtensa/page.h
+++ testtree/include/asm-xtensa/page.h
@@ -109,10 +109,7 @@ void copy_user_page(void *to,void* from,
#define __pa(x) ((unsigned long) (x) - PAGE_OFFSET)
#define __va(x) ((void *)((unsigned long) (x) + PAGE_OFFSET))
#define pfn_valid(pfn) ((unsigned long)pfn < max_mapnr)
-#ifndef CONFIG_DISCONTIGMEM
-# define pfn_to_page(pfn) (mem_map + (pfn))
-# define page_to_pfn(page) ((unsigned long)((page) - mem_map))
-#else
+#ifdef CONFIG_DISCONTIGMEM
# error CONFIG_DISCONTIGMEM not supported
#endif
@@ -130,4 +127,5 @@ void copy_user_page(void *to,void* from,
VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
#endif /* __KERNEL__ */
+#include <asm-generic/memory_model.h>
#endif /* _XTENSA_PAGE_H */
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH] unify pfn_to_page take3 [23/23] ia64 pfn_to_page
2006-02-14 9:48 [PATCH] unify pfn_to_page take3 [0/23] KAMEZAWA Hiroyuki
` (21 preceding siblings ...)
2006-02-14 11:01 ` [PATCH] unify pfn_to_page take3 [22/23] xtensa pfn_to_page KAMEZAWA Hiroyuki
@ 2006-02-14 11:04 ` KAMEZAWA Hiroyuki
2006-02-23 11:09 ` KAMEZAWA Hiroyuki
2006-02-15 5:33 ` [PATCH] unify pfn_to_page take3 [0/23] Andrew Morton
23 siblings, 1 reply; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-14 11:04 UTC (permalink / raw)
To: Linux Kernel Mailing List; +Cc: Andrew Morton, linux-ia64
ia64 has special config CONFIG_VIRTUAL_MEM_MAP.
CONFIG_DISCONTIGMEM=y && CONFIG_VIRTUAL_MEM_MAP!=y looks invalid.
Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Index: testtree/include/asm-ia64/page.h
===================================================================
--- testtree.orig/include/asm-ia64/page.h
+++ testtree/include/asm-ia64/page.h
@@ -104,17 +104,20 @@ extern int ia64_pfn_valid (unsigned long
# define ia64_pfn_valid(pfn) 1
#endif
+#ifdef CONFIG_VIRTUAL_MEM_MAP
+extern struct page *vmem_map;
+# define page_to_pfn(page) ((unsigned long) (page - vmem_map))
+# define pfn_to_page(pfn) (vmem_map + (pfn))
+#else
+#include <asm-generic/memory_model.h>
+#endif
+
#ifdef CONFIG_FLATMEM
# define pfn_valid(pfn) (((pfn) < max_mapnr) && ia64_pfn_valid(pfn))
-# define page_to_pfn(page) ((unsigned long) (page - mem_map))
-# define pfn_to_page(pfn) (mem_map + (pfn))
#elif defined(CONFIG_DISCONTIGMEM)
-extern struct page *vmem_map;
extern unsigned long min_low_pfn;
extern unsigned long max_low_pfn;
# define pfn_valid(pfn) (((pfn) >= min_low_pfn) && ((pfn) < max_low_pfn) && ia64_pfn_valid(pfn))
-# define page_to_pfn(page) ((unsigned long) (page - vmem_map))
-# define pfn_to_page(pfn) (vmem_map + (pfn))
#endif
#define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH] unify pfn_to_page take3 [0/23]
2006-02-14 9:48 [PATCH] unify pfn_to_page take3 [0/23] KAMEZAWA Hiroyuki
` (22 preceding siblings ...)
2006-02-14 11:04 ` [PATCH] unify pfn_to_page take3 [23/23] ia64 pfn_to_page KAMEZAWA Hiroyuki
@ 2006-02-15 5:33 ` Andrew Morton
2006-02-15 5:43 ` KAMEZAWA Hiroyuki
23 siblings, 1 reply; 27+ messages in thread
From: Andrew Morton @ 2006-02-15 5:33 UTC (permalink / raw)
To: KAMEZAWA Hiroyuki; +Cc: linux-kernel, kyle
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> wrote:
>
> User-Agent: Thunderbird 1.5 (Windows/20051201)
uh-oh.
> Hi, this is unify-pfn_to_page patch take3. thank you for comments on
> previous version.
I get 100% rejects on all patches due to your email clients's
space-stuffing, which my client (or at least this version of it) doesn't
want to un-space-stuff.
Please resend off-list, using text/plain attachments.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH] unify pfn_to_page take3 [0/23]
2006-02-15 5:33 ` [PATCH] unify pfn_to_page take3 [0/23] Andrew Morton
@ 2006-02-15 5:43 ` KAMEZAWA Hiroyuki
0 siblings, 0 replies; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-15 5:43 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, kyle
Andrew Morton wrote:
> KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> wrote:
>> User-Agent: Thunderbird 1.5 (Windows/20051201)
>
> uh-oh.
>
>> Hi, this is unify-pfn_to_page patch take3. thank you for comments on
>> previous version.
>
> I get 100% rejects on all patches due to your email clients's
> space-stuffing, which my client (or at least this version of it) doesn't
> want to un-space-stuff.
>
> Please resend off-list, using text/plain attachments.
>
Ouch, very sorry..
I posted them in usual way, but something was wrong.
I'll do soon.
I'm now comparing inlined and out-of-lined pfn_to_page() on ia64 sparsemem.
I'll post it if it is interesting.
-- Kame
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH] unify pfn_to_page take3 [23/23] ia64 pfn_to_page
2006-02-14 11:04 ` [PATCH] unify pfn_to_page take3 [23/23] ia64 pfn_to_page KAMEZAWA Hiroyuki
@ 2006-02-23 11:09 ` KAMEZAWA Hiroyuki
0 siblings, 0 replies; 27+ messages in thread
From: KAMEZAWA Hiroyuki @ 2006-02-23 11:09 UTC (permalink / raw)
To: KAMEZAWA Hiroyuki; +Cc: Linux Kernel Mailing List, Andrew Morton, linux-ia64
[-- Attachment #1: Type: text/plain, Size: 124 bytes --]
KAMEZAWA Hiroyuki wrote:
> ia64 has special config CONFIG_VIRTUAL_MEM_MAP.
This vesion had a BUG. This is fixed one.
--Kame
[-- Attachment #2: b022-ia64.patch --]
[-- Type: text/x-patch, Size: 1516 bytes --]
ia64 has special config CONFIG_VIRTUAL_MEM_MAP.
CONFIG_DISCONTIGMEM=y && CONFIG_VIRTUAL_MEM_MAP!=y is bug ?
Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Index: unify_page_to_pfn/include/asm-ia64/page.h
===================================================================
--- unify_page_to_pfn.orig/include/asm-ia64/page.h
+++ unify_page_to_pfn/include/asm-ia64/page.h
@@ -104,17 +104,25 @@ extern int ia64_pfn_valid (unsigned long
# define ia64_pfn_valid(pfn) 1
#endif
+#ifdef CONFIG_VIRTUAL_MEM_MAP
+extern struct page *vmem_map;
+#ifdef CONFIG_DISCONTIGMEM
+# define page_to_pfn(page) ((unsigned long) (page - vmem_map))
+# define pfn_to_page(pfn) (vmem_map + (pfn))
+#endif
+#endif
+
+#if defined(CONFIG_FLATMEM) || defined(CONFIG_SPARSEMEM)
+/* FLATMEM always configures mem_map (mem_map = vmem_map if necessary) */
+#include <asm-generic/memory_model.h>
+#endif
+
#ifdef CONFIG_FLATMEM
# define pfn_valid(pfn) (((pfn) < max_mapnr) && ia64_pfn_valid(pfn))
-# define page_to_pfn(page) ((unsigned long) (page - mem_map))
-# define pfn_to_page(pfn) (mem_map + (pfn))
#elif defined(CONFIG_DISCONTIGMEM)
-extern struct page *vmem_map;
extern unsigned long min_low_pfn;
extern unsigned long max_low_pfn;
# define pfn_valid(pfn) (((pfn) >= min_low_pfn) && ((pfn) < max_low_pfn) && ia64_pfn_valid(pfn))
-# define page_to_pfn(page) ((unsigned long) (page - vmem_map))
-# define pfn_to_page(pfn) (vmem_map + (pfn))
#endif
#define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
^ permalink raw reply [flat|nested] 27+ messages in thread
end of thread, other threads:[~2006-02-23 11:08 UTC | newest]
Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-02-14 9:48 [PATCH] unify pfn_to_page take3 [0/23] KAMEZAWA Hiroyuki
2006-02-14 9:54 ` [PATCH] unify pfn_to_page take3 [1/23] generic functions KAMEZAWA Hiroyuki
2006-02-14 9:56 ` [PATCH] unify pfn_to_page take3 [2/23] i386 pfn_to_page KAMEZAWA Hiroyuki
2006-02-14 9:58 ` [PATCH] unify pfn_to_page take3 [3/23] x86_64 pfn_to_page KAMEZAWA Hiroyuki
2006-02-14 10:02 ` [PATCH] unify pfn_to_page take3 [4/23] powerpc pfn_to_page KAMEZAWA Hiroyuki
2006-02-14 10:12 ` [PATCH] unify pfn_to_page take3 [5/23] alpha pfn_to_page KAMEZAWA Hiroyuki
2006-02-14 10:19 ` [PATCH] unify pfn_to_page take3 [6/23] arm pfn_to_page KAMEZAWA Hiroyuki
2006-02-14 10:21 ` [PATCH] unify pfn_to_page take3 [7/23] arm26 pfn_to_page KAMEZAWA Hiroyuki
2006-02-14 10:23 ` [PATCH] unify pfn_to_page take3 [8/23] cris pfn_to_page KAMEZAWA Hiroyuki
2006-02-14 10:25 ` [PATCH] unify pfn_to_page take3 [9/23] frv pfn_tp_page KAMEZAWA Hiroyuki
2006-02-14 10:28 ` [PATCH] unify pfn_to_page take3 [10/23] h8300 pfn_to_page KAMEZAWA Hiroyuki
2006-02-14 10:33 ` [PATCH] unify pfn_to_page take3 [11/23] m32r pfn_to_page KAMEZAWA Hiroyuki
2006-02-14 10:36 ` [PATCH] unify pfn_to_page take3 [12/23] mips pfn_to_page KAMEZAWA Hiroyuki
2006-02-14 10:40 ` [PATCH] unify pfn_to_page take3 [13/23] parisc pfn_to_page KAMEZAWA Hiroyuki
2006-02-14 10:43 ` [PATCH] unify pfn_to_page take3 [14/23] ppc pfn_to_page KAMEZAWA Hiroyuki
2006-02-14 10:45 ` [PATCH] unify pfn_to_page take3 [15/23] s390 pfn_to_page KAMEZAWA Hiroyuki
2006-02-14 10:47 ` [PATCH] unify pfn_to_page take3 [16/23] sh pfn_to_page KAMEZAWA Hiroyuki
2006-02-14 10:51 ` [PATCH] unify pfn_to_page take3 [17/23] sh64 pfn_to_page KAMEZAWA Hiroyuki
2006-02-14 10:54 ` [PATCH] unify pfn_to_page take3 [18/23] sparc pfn_to_page KAMEZAWA Hiroyuki
2006-02-14 10:56 ` [PATCH] unify pfn_to_page take3 [19/23] sparc64 pfn_to_page KAMEZAWA Hiroyuki
2006-02-14 10:58 ` [PATCH] unify pfn_to_page take3 [20/23] UML pfn_to_page KAMEZAWA Hiroyuki
2006-02-14 10:59 ` [PATCH] unify pfn_to_page take3 [21/23] v850 pfn_to_page KAMEZAWA Hiroyuki
2006-02-14 11:01 ` [PATCH] unify pfn_to_page take3 [22/23] xtensa pfn_to_page KAMEZAWA Hiroyuki
2006-02-14 11:04 ` [PATCH] unify pfn_to_page take3 [23/23] ia64 pfn_to_page KAMEZAWA Hiroyuki
2006-02-23 11:09 ` KAMEZAWA Hiroyuki
2006-02-15 5:33 ` [PATCH] unify pfn_to_page take3 [0/23] Andrew Morton
2006-02-15 5:43 ` KAMEZAWA Hiroyuki
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).