===== include/asm-ia64/pgtable.h 1.54 vs edited ===== --- 1.54/include/asm-ia64/pgtable.h 2005-03-13 15:29:40 -08:00 +++ edited/include/asm-ia64/pgtable.h 2005-03-16 09:44:35 -08:00 @@ -550,6 +550,28 @@ #define __HAVE_ARCH_PTEP_SET_WRPROTECT #define __HAVE_ARCH_PTE_SAME #define __HAVE_ARCH_PGD_OFFSET_GATE + +/* + * Overrides to deal with virtual address space holes. + */ +#define IA64_REGION_HOLE (PGDIR_SIZE << (PAGE_SHIFT-6)) +#define pgd_addr_end(addr, end) \ +({ unsigned long __boundary = ((addr) + PGDIR_SIZE) & PGDIR_MASK; \ + if (__boundary & IA64_REGION_HOLE) \ + __boundary |= (RGN_SIZE - 1) & ~(IA64_REGION_HOLE - 1); \ + (__boundary - 1 < (end) - 1) ? __boundary : (end); \ +}) + +#undef IA64_REGION_HOLE +#define IA64_REGION_HOLE (PMD_SIZE << (PAGE_SHIFT-3)) +#define pmd_addr_end(addr, end) \ +({ unsigned long __boundary = ((addr) + PMD_SIZE) & PMD_MASK; \ + if (__boundary & IA64_REGION_HOLE) \ + __boundary |= (RGN_SIZE - 1) & ~(IA64_REGION_HOLE - 1); \ + (__boundary - 1 < (end) - 1) ? __boundary : (end); \ +}) + + #include #include