···3535 return -ENOMEM;36363737#ifdef CONFIG_HUGETLB_PAGE3838- if (REGION_NUMBER(addr) == REGION_HPAGE)3838+ if (REGION_NUMBER(addr) == RGN_HPAGE)3939 addr = 0;4040#endif4141 if (!addr)
+4-4
arch/ia64/mm/hugetlbpage.c
···7676 return -EINVAL;7777 if (addr & ~HPAGE_MASK)7878 return -EINVAL;7979- if (REGION_NUMBER(addr) != REGION_HPAGE)7979+ if (REGION_NUMBER(addr) != RGN_HPAGE)8080 return -EINVAL;81818282 return 0;···8787 struct page *page;8888 pte_t *ptep;89899090- if (REGION_NUMBER(addr) != REGION_HPAGE)9090+ if (REGION_NUMBER(addr) != RGN_HPAGE)9191 return ERR_PTR(-EINVAL);92929393 ptep = huge_pte_offset(mm, addr);···142142 return -ENOMEM;143143 if (len & ~HPAGE_MASK)144144 return -EINVAL;145145- /* This code assumes that REGION_HPAGE != 0. */146146- if ((REGION_NUMBER(addr) != REGION_HPAGE) || (addr & (HPAGE_SIZE - 1)))145145+ /* This code assumes that RGN_HPAGE != 0. */146146+ if ((REGION_NUMBER(addr) != RGN_HPAGE) || (addr & (HPAGE_SIZE - 1)))147147 addr = HPAGE_REGION_BASE;148148 else149149 addr = ALIGN(addr, HPAGE_SIZE);
+1-1
include/asm-ia64/io.h
···2323#define __SLOW_DOWN_IO do { } while (0)2424#define SLOW_DOWN_IO do { } while (0)25252626-#define __IA64_UNCACHED_OFFSET 0xc000000000000000UL /* region 6 */2626+#define __IA64_UNCACHED_OFFSET RGN_BASE(RGN_UNCACHED)27272828/*2929 * The legacy I/O space defined by the ia64 architecture supports only 65536 ports, but
+6-1
include/asm-ia64/mmu_context.h
···19192020#define ia64_rid(ctx,addr) (((ctx) << 3) | (addr >> 61))21212222+# include <asm/page.h>2223# ifndef __ASSEMBLY__23242425#include <linux/compiler.h>···123122 unsigned long rid_incr = 0;124123 unsigned long rr0, rr1, rr2, rr3, rr4, old_rr4;125124126126- old_rr4 = ia64_get_rr(0x8000000000000000UL);125125+ old_rr4 = ia64_get_rr(RGN_BASE(RGN_HPAGE));127126 rid = context << 3; /* make space for encoding the region number */128127 rid_incr = 1 << 8;129128···135134 rr4 = rr0 + 4*rid_incr;136135#ifdef CONFIG_HUGETLB_PAGE137136 rr4 = (rr4 & (~(0xfcUL))) | (old_rr4 & 0xfc);137137+138138+# if RGN_HPAGE != 4139139+# error "reload_context assumes RGN_HPAGE is 4"140140+# endif138141#endif139142140143 ia64_set_rr(0x0000000000000000UL, rr0);
+18-9
include/asm-ia64/page.h
···1313#include <asm/types.h>14141515/*1616+ * The top three bits of an IA64 address are its Region Number.1717+ * Different regions are assigned to different purposes.1818+ */1919+#define RGN_SHIFT (61)2020+#define RGN_BASE(r) (__IA64_UL_CONST(r)<<RGN_SHIFT)2121+#define RGN_BITS (RGN_BASE(-1))2222+2323+#define RGN_KERNEL 7 /* Identity mapped region */2424+#define RGN_UNCACHED 6 /* Identity mapped I/O region */2525+#define RGN_GATE 5 /* Gate page, Kernel text, etc */2626+#define RGN_HPAGE 4 /* For Huge TLB pages */2727+2828+/*1629 * PAGE_SHIFT determines the actual kernel page size.1730 */1831#if defined(CONFIG_IA64_PAGE_SIZE_4KB)···49365037#define RGN_MAP_LIMIT ((1UL << (4*PAGE_SHIFT - 12)) - PAGE_SIZE) /* per region addr limit */51383939+5240#ifdef CONFIG_HUGETLB_PAGE5353-# define REGION_HPAGE (4UL) /* note: this is hardcoded in reload_context()!*/5454-# define REGION_SHIFT 615555-# define HPAGE_REGION_BASE (REGION_HPAGE << REGION_SHIFT)4141+# define HPAGE_REGION_BASE RGN_BASE(RGN_HPAGE)5642# define HPAGE_SHIFT hpage_shift5743# define HPAGE_SHIFT_DEFAULT 28 /* check ia64 SDM for architecture supported size */5844# define HPAGE_SIZE (__IA64_UL_CONST(1) << HPAGE_SHIFT)···142130#define REGION_NUMBER(x) ({ia64_va _v; _v.l = (long) (x); _v.f.reg;})143131#define REGION_OFFSET(x) ({ia64_va _v; _v.l = (long) (x); _v.f.off;})144132145145-#define REGION_SIZE REGION_NUMBER(1)146146-#define REGION_KERNEL 7147147-148133#ifdef CONFIG_HUGETLB_PAGE149134# define htlbpage_to_page(x) (((unsigned long) REGION_NUMBER(x) << 61) \150135 | (REGION_OFFSET(x) >> (HPAGE_SHIFT-PAGE_SHIFT)))151136# define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT)152137# define is_hugepage_only_range(mm, addr, len) \153153- (REGION_NUMBER(addr) == REGION_HPAGE && \154154- REGION_NUMBER((addr)+(len)-1) == REGION_HPAGE)138138+ (REGION_NUMBER(addr) == RGN_HPAGE && \139139+ REGION_NUMBER((addr)+(len)-1) == RGN_HPAGE)155140extern unsigned int hpage_shift;156141#endif157142···206197# define __pgprot(x) (x)207198#endif /* !STRICT_MM_TYPECHECKS */208199209209-#define PAGE_OFFSET __IA64_UL_CONST(0xe000000000000000)200200+#define PAGE_OFFSET RGN_BASE(RGN_KERNEL)210201211202#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | \212203 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC | \