fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / include / asm-generic / 4level-fixup.h
index 0267574..7b88d39 100644 (file)
@@ -2,6 +2,7 @@
 #define _4LEVEL_FIXUP_H
 
 #define __ARCH_HAS_4LEVEL_HACK
+#define __PAGETABLE_PUD_FOLDED
 
 #define PUD_SIZE                       PGDIR_SIZE
 #define PUD_MASK                       PGDIR_MASK
@@ -9,14 +10,9 @@
 
 #define pud_t                          pgd_t
 
-#define pmd_alloc(mm, pud, address)                    \
-({     pmd_t *ret;                                     \
-       if (pgd_none(*pud))                             \
-               ret = __pmd_alloc(mm, pud, address);    \
-       else                                            \
-               ret = pmd_offset(pud, address);         \
-       ret;                                            \
-})
+#define pmd_alloc(mm, pud, address) \
+       ((unlikely(pgd_none(*(pud))) && __pmd_alloc(mm, pud, address))? \
+               NULL: pmd_offset(pud, address))
 
 #define pud_alloc(mm, pgd, address)    (pgd)
 #define pud_offset(pgd, start)         (pgd)
 #define pud_present(pud)               1
 #define pud_ERROR(pud)                 do { } while (0)
 #define pud_clear(pud)                 pgd_clear(pud)
+#define pud_val(pud)                   pgd_val(pud)
+#define pud_populate(mm, pud, pmd)     pgd_populate(mm, pud, pmd)
+#define pud_page(pud)                  pgd_page(pud)
+#define pud_page_vaddr(pud)            pgd_page_vaddr(pud)
 
 #undef pud_free_tlb
 #define pud_free_tlb(tlb, x)            do { } while (0)
 #define pud_free(x)                    do { } while (0)
 #define __pud_free_tlb(tlb, x)         do { } while (0)
 
+#undef  pud_addr_end
+#define pud_addr_end(addr, end)                (end)
+
 #endif