]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/asm-generic/memory_model.h
Don't ask twice about not including staging drivers
[linux-2.6-omap-h63xx.git] / include / asm-generic / memory_model.h
index 30d8d33491dddd86466dc2df917270d8499c5415..18546d8eb78e75303ddc6574f4ed128f70cea8fb 100644 (file)
@@ -1,7 +1,6 @@
 #ifndef __ASM_MEMORY_MODEL_H
 #define __ASM_MEMORY_MODEL_H
 
-#ifdef __KERNEL__
 #ifndef __ASSEMBLY__
 
 #if defined(CONFIG_FLATMEM)
@@ -35,7 +34,7 @@
 
 #define __pfn_to_page(pfn)                     \
 ({     unsigned long __pfn = (pfn);            \
-       unsigned long __nid = arch_pfn_to_nid(pfn);  \
+       unsigned long __nid = arch_pfn_to_nid(__pfn);  \
        NODE_DATA(__nid)->node_mem_map + arch_local_page_offset(__pfn, __nid);\
 })
 
         __pgdat->node_start_pfn;                                       \
 })
 
+#elif defined(CONFIG_SPARSEMEM_VMEMMAP)
+
+/* memmap is virtually contigious.  */
+#define __pfn_to_page(pfn)     (vmemmap + (pfn))
+#define __page_to_pfn(page)    ((page) - vmemmap)
+
 #elif defined(CONFIG_SPARSEMEM)
 /*
  * Note: section's mem_map is encorded to reflect its start_pfn.
@@ -75,6 +80,5 @@ extern unsigned long page_to_pfn(struct page *page);
 #endif /* CONFIG_OUT_OF_LINE_PFN_TO_PAGE */
 
 #endif /* __ASSEMBLY__ */
-#endif /* __KERNEL__ */
 
 #endif