]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/asm-generic/memory_model.h
kvm: provide kvm.h for all architecture: fixes headers_install
[linux-2.6-omap-h63xx.git] / include / asm-generic / memory_model.h
index 8078cbd2c0163878b44ace538a39422082b60cb2..52226e14bd7dba34b483a77ba22424e4241f8145 100644 (file)
         __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.
@@ -54,7 +60,7 @@
 #define __page_to_pfn(pg)                                      \
 ({     struct page *__pg = (pg);                               \
        int __sec = page_to_section(__pg);                      \
-       __pg - __section_mem_map_addr(__nr_to_section(__sec));  \
+       (unsigned long)(__pg - __section_mem_map_addr(__nr_to_section(__sec))); \
 })
 
 #define __pfn_to_page(pfn)                             \