]> Pileus Git - ~andy/linux/blobdiff - include/asm-generic/4level-fixup.h
Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/agpgart
[~andy/linux] / include / asm-generic / 4level-fixup.h
index c20ec257ecc053ee181a63c3cca9bf296da5494d..7b88d3931e3426f96bd88f93b7934bc4023ec79a 100644 (file)
 
 #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)