aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-05-24 15:13:13 +0100
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-05-24 15:13:13 +0100
commit26e96c98bc70466a5f366d4baf9b58f0b0365fb8 (patch)
tree683f246cc5b8620ec1e8f0f60696c561d9c34787
parent7eb2ea035179e0243ebf7836365154674c2ceb97 (diff)
downloadxen-26e96c98bc70466a5f366d4baf9b58f0b0365fb8.tar.gz
xen-26e96c98bc70466a5f366d4baf9b58f0b0365fb8.tar.bz2
xen-26e96c98bc70466a5f366d4baf9b58f0b0365fb8.zip
linux/x86: consolidate pte_val/p[mug]d_val replacements
- replace incomplete pXX_val_ma() set with complete __pXX_val() set - use __pXX_val() instead of pXX_val() when only flags are accessed or the frame number is only compared against zero Signed-off-by: Jan Beulich <jbeulich@novell.com>
-rw-r--r--linux-2.6-xen-sparse/arch/i386/mm/hypervisor.c29
-rw-r--r--linux-2.6-xen-sparse/arch/i386/mm/ioremap-xen.c2
-rw-r--r--linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/page.h24
-rw-r--r--linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable-2level.h6
-rw-r--r--linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable-3level.h15
-rw-r--r--linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable.h11
-rw-r--r--linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/asm/page.h17
-rw-r--r--linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/asm/pgtable.h40
8 files changed, 71 insertions, 73 deletions
diff --git a/linux-2.6-xen-sparse/arch/i386/mm/hypervisor.c b/linux-2.6-xen-sparse/arch/i386/mm/hypervisor.c
index 9181f8ba89..3222b9d5ae 100644
--- a/linux-2.6-xen-sparse/arch/i386/mm/hypervisor.c
+++ b/linux-2.6-xen-sparse/arch/i386/mm/hypervisor.c
@@ -43,22 +43,11 @@
#include <linux/percpu.h>
#include <asm/tlbflush.h>
-#ifdef CONFIG_X86_64
-#define pmd_val_ma(v) (v).pmd
-#else
-#ifdef CONFIG_X86_PAE
-# define pmd_val_ma(v) ((v).pmd)
-# define pud_val_ma(v) ((v).pgd.pgd)
-#else
-# define pmd_val_ma(v) ((v).pud.pgd.pgd)
-#endif
-#endif
-
void xen_l1_entry_update(pte_t *ptr, pte_t val)
{
mmu_update_t u;
u.ptr = virt_to_machine(ptr);
- u.val = pte_val_ma(val);
+ u.val = __pte_val(val);
BUG_ON(HYPERVISOR_mmu_update(&u, 1, NULL, DOMID_SELF) < 0);
}
@@ -66,34 +55,26 @@ void xen_l2_entry_update(pmd_t *ptr, pmd_t val)
{
mmu_update_t u;
u.ptr = virt_to_machine(ptr);
- u.val = pmd_val_ma(val);
+ u.val = __pmd_val(val);
BUG_ON(HYPERVISOR_mmu_update(&u, 1, NULL, DOMID_SELF) < 0);
}
-#ifdef CONFIG_X86_PAE
+#if defined(CONFIG_X86_PAE) || defined(CONFIG_X86_64)
void xen_l3_entry_update(pud_t *ptr, pud_t val)
{
mmu_update_t u;
u.ptr = virt_to_machine(ptr);
- u.val = pud_val_ma(val);
+ u.val = __pud_val(val);
BUG_ON(HYPERVISOR_mmu_update(&u, 1, NULL, DOMID_SELF) < 0);
}
#endif
#ifdef CONFIG_X86_64
-void xen_l3_entry_update(pud_t *ptr, pud_t val)
-{
- mmu_update_t u;
- u.ptr = virt_to_machine(ptr);
- u.val = val.pud;
- BUG_ON(HYPERVISOR_mmu_update(&u, 1, NULL, DOMID_SELF) < 0);
-}
-
void xen_l4_entry_update(pgd_t *ptr, pgd_t val)
{
mmu_update_t u;
u.ptr = virt_to_machine(ptr);
- u.val = val.pgd;
+ u.val = __pgd_val(val);
BUG_ON(HYPERVISOR_mmu_update(&u, 1, NULL, DOMID_SELF) < 0);
}
#endif /* CONFIG_X86_64 */
diff --git a/linux-2.6-xen-sparse/arch/i386/mm/ioremap-xen.c b/linux-2.6-xen-sparse/arch/i386/mm/ioremap-xen.c
index bd13dbdade..6d6edd203a 100644
--- a/linux-2.6-xen-sparse/arch/i386/mm/ioremap-xen.c
+++ b/linux-2.6-xen-sparse/arch/i386/mm/ioremap-xen.c
@@ -76,7 +76,7 @@ static int __direct_remap_pfn_range(struct mm_struct *mm,
* Fill in the machine address: PTE ptr is done later by
* __direct_remap_area_pages().
*/
- v->val = pte_val_ma(pfn_pte_ma(mfn, prot));
+ v->val = __pte_val(pfn_pte_ma(mfn, prot));
mfn++;
address += PAGE_SIZE;
diff --git a/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/page.h b/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/page.h
index 0a7bac0a2b..f009117007 100644
--- a/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/page.h
+++ b/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/page.h
@@ -89,19 +89,20 @@ typedef struct { unsigned long long pgprot; } pgprot_t;
(pgd_t) {((_x) & _PAGE_PRESENT) ? pte_phys_to_machine(_x) : (_x)}; })
#define __pmd(x) ({ unsigned long long _x = (x); \
(pmd_t) {((_x) & _PAGE_PRESENT) ? pte_phys_to_machine(_x) : (_x)}; })
-static inline unsigned long long pte_val_ma(pte_t x)
+static inline unsigned long long __pte_val(pte_t x)
{
return ((unsigned long long)x.pte_high << 32) | x.pte_low;
}
static inline unsigned long long pte_val(pte_t x)
{
- unsigned long long ret = pte_val_ma(x);
+ unsigned long long ret = __pte_val(x);
if (x.pte_low & _PAGE_PRESENT) ret = pte_machine_to_phys(ret);
return ret;
}
+#define __pmd_val(x) ((x).pmd)
static inline unsigned long long pmd_val(pmd_t x)
{
- unsigned long long ret = x.pmd;
+ unsigned long long ret = __pmd_val(x);
#if CONFIG_XEN_COMPAT <= 0x030002
if (ret) ret = pte_machine_to_phys(ret) | _PAGE_PRESENT;
#else
@@ -109,9 +110,11 @@ static inline unsigned long long pmd_val(pmd_t x)
#endif
return ret;
}
+#define __pud_val(x) __pgd_val((x).pgd)
+#define __pgd_val(x) ((x).pgd)
static inline unsigned long long pgd_val(pgd_t x)
{
- unsigned long long ret = x.pgd;
+ unsigned long long ret = __pgd_val(x);
if (ret & _PAGE_PRESENT) ret = pte_machine_to_phys(ret);
return ret;
}
@@ -123,17 +126,20 @@ typedef struct { unsigned long pgprot; } pgprot_t;
#define pgprot_val(x) ((x).pgprot)
#include <asm/maddr.h>
#define boot_pte_t pte_t /* or would you rather have a typedef */
-#define pte_val(x) (((x).pte_low & _PAGE_PRESENT) ? \
- machine_to_phys((x).pte_low) : \
- (x).pte_low)
-#define pte_val_ma(x) ((x).pte_low)
+#define __pte_val(x) ((x).pte_low)
+#define pte_val(x) (__pte_val(x) & _PAGE_PRESENT ? \
+ machine_to_phys(__pte_val(x)) : \
+ __pte_val(x))
#define __pte(x) ({ unsigned long _x = (x); \
(pte_t) {((_x) & _PAGE_PRESENT) ? phys_to_machine(_x) : (_x)}; })
+#define __pmd_val(x) __pud_val((x).pud)
+#define __pud_val(x) __pgd_val((x).pgd)
#define __pgd(x) ({ unsigned long _x = (x); \
(pgd_t) {((_x) & _PAGE_PRESENT) ? phys_to_machine(_x) : (_x)}; })
+#define __pgd_val(x) ((x).pgd)
static inline unsigned long pgd_val(pgd_t x)
{
- unsigned long ret = x.pgd;
+ unsigned long ret = __pgd_val(x);
#if CONFIG_XEN_COMPAT <= 0x030002
if (ret) ret = machine_to_phys(ret) | _PAGE_PRESENT;
#else
diff --git a/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable-2level.h b/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable-2level.h
index f6af92b670..28ce247d1c 100644
--- a/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable-2level.h
+++ b/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable-2level.h
@@ -4,9 +4,11 @@
#include <asm-generic/pgtable-nopmd.h>
#define pte_ERROR(e) \
- printk("%s:%d: bad pte %08lx.\n", __FILE__, __LINE__, (e).pte_low)
+ printk("%s:%d: bad pte %08lx (pfn %05lx).\n", __FILE__, __LINE__, \
+ __pte_val(e), pte_pfn(e))
#define pgd_ERROR(e) \
- printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, pgd_val(e))
+ printk("%s:%d: bad pgd %08lx (pfn %05lx).\n", __FILE__, __LINE__, \
+ __pgd_val(e), pgd_val(e) >> PAGE_SHIFT)
/*
* Certain architectures need to do special things when PTEs
diff --git a/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable-3level.h b/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable-3level.h
index 6863a0018e..645afb6c7f 100644
--- a/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable-3level.h
+++ b/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable-3level.h
@@ -11,11 +11,14 @@
*/
#define pte_ERROR(e) \
- printk("%s:%d: bad pte %p(%08lx%08lx).\n", __FILE__, __LINE__, &(e), (e).pte_high, (e).pte_low)
+ printk("%s:%d: bad pte %p(%016Lx pfn %08lx).\n", __FILE__, __LINE__, \
+ &(e), __pte_val(e), pte_pfn(e))
#define pmd_ERROR(e) \
- printk("%s:%d: bad pmd %p(%016Lx).\n", __FILE__, __LINE__, &(e), pmd_val(e))
+ printk("%s:%d: bad pmd %p(%016Lx pfn %08Lx).\n", __FILE__, __LINE__, \
+ &(e), __pmd_val(e), (pmd_val(e) & PTE_MASK) >> PAGE_SHIFT)
#define pgd_ERROR(e) \
- printk("%s:%d: bad pgd %p(%016Lx).\n", __FILE__, __LINE__, &(e), pgd_val(e))
+ printk("%s:%d: bad pgd %p(%016Lx pfn %08Lx).\n", __FILE__, __LINE__, \
+ &(e), __pgd_val(e), (pgd_val(e) & PTE_MASK) >> PAGE_SHIFT)
#define pud_none(pud) 0
#define pud_bad(pud) 0
@@ -26,7 +29,7 @@
*/
static inline int pte_x(pte_t pte)
{
- return !(pte_val(pte) & _PAGE_NX);
+ return !(__pte_val(pte) & _PAGE_NX);
}
/*
@@ -59,7 +62,7 @@ static inline void set_pte(pte_t *ptep, pte_t pte)
ptep->pte_low = pte.pte_low;
}
#define set_pte_atomic(pteptr,pteval) \
- set_64bit((unsigned long long *)(pteptr),pte_val_ma(pteval))
+ set_64bit((unsigned long long *)(pteptr),__pte_val(pteval))
#define set_pte_at(_mm,addr,ptep,pteval) do { \
if (((_mm) != current->mm && (_mm) != &init_mm) || \
@@ -126,7 +129,7 @@ static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr,
pte_t pte = *ptep;
if (!pte_none(pte)) {
if (mm != &init_mm) {
- uint64_t val = pte_val_ma(pte);
+ uint64_t val = __pte_val(pte);
if (__cmpxchg64(ptep, val, 0) != val) {
/* xchg acts as a barrier before the setting of the high bits */
pte.pte_low = xchg(&ptep->pte_low, 0);
diff --git a/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable.h b/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable.h
index 276309ce73..a6defb4d83 100644
--- a/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable.h
+++ b/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable.h
@@ -209,15 +209,16 @@ extern unsigned long pg0[];
#define pte_present(x) ((x).pte_low & (_PAGE_PRESENT | _PAGE_PROTNONE))
/* To avoid harmful races, pmd_none(x) should check only the lower when PAE */
-#define pmd_none(x) (!(unsigned long)pmd_val(x))
+#define pmd_none(x) (!(unsigned long)__pmd_val(x))
#if CONFIG_XEN_COMPAT <= 0x030002
/* pmd_present doesn't just test the _PAGE_PRESENT bit since wr.p.t.
can temporarily clear it. */
-#define pmd_present(x) (pmd_val(x))
+#define pmd_present(x) (__pmd_val(x))
+#define pmd_bad(x) ((__pmd_val(x) & (~PAGE_MASK & ~_PAGE_USER & ~_PAGE_PRESENT)) != (_KERNPG_TABLE & ~_PAGE_PRESENT))
#else
-#define pmd_present(x) (pmd_val(x) & _PAGE_PRESENT)
+#define pmd_present(x) (__pmd_val(x) & _PAGE_PRESENT)
+#define pmd_bad(x) ((__pmd_val(x) & (~PAGE_MASK & ~_PAGE_USER)) != _KERNPG_TABLE)
#endif
-#define pmd_bad(x) ((pmd_val(x) & (~PAGE_MASK & ~_PAGE_USER & ~_PAGE_PRESENT)) != (_KERNPG_TABLE & ~_PAGE_PRESENT))
#define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT))
@@ -346,7 +347,7 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
}
#define pmd_large(pmd) \
-((pmd_val(pmd) & (_PAGE_PSE|_PAGE_PRESENT)) == (_PAGE_PSE|_PAGE_PRESENT))
+((__pmd_val(pmd) & (_PAGE_PSE|_PAGE_PRESENT)) == (_PAGE_PSE|_PAGE_PRESENT))
/*
* the pgd page can be thought of an array like this: pgd_t[PTRS_PER_PGD]
diff --git a/linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/asm/page.h b/linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/asm/page.h
index b1cc4ac510..965effd266 100644
--- a/linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/asm/page.h
+++ b/linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/asm/page.h
@@ -96,14 +96,15 @@ typedef struct { unsigned long pgd; } pgd_t;
typedef struct { unsigned long pgprot; } pgprot_t;
-#define pte_val(x) (((x).pte & _PAGE_PRESENT) ? \
- pte_machine_to_phys((x).pte) : \
- (x).pte)
-#define pte_val_ma(x) ((x).pte)
+#define __pte_val(x) ((x).pte)
+#define pte_val(x) ((__pte_val(x) & _PAGE_PRESENT) ? \
+ pte_machine_to_phys(__pte_val(x)) : \
+ __pte_val(x))
+#define __pmd_val(x) ((x).pmd)
static inline unsigned long pmd_val(pmd_t x)
{
- unsigned long ret = x.pmd;
+ unsigned long ret = __pmd_val(x);
#if CONFIG_XEN_COMPAT <= 0x030002
if (ret) ret = pte_machine_to_phys(ret) | _PAGE_PRESENT;
#else
@@ -112,16 +113,18 @@ static inline unsigned long pmd_val(pmd_t x)
return ret;
}
+#define __pud_val(x) ((x).pud)
static inline unsigned long pud_val(pud_t x)
{
- unsigned long ret = x.pud;
+ unsigned long ret = __pud_val(x);
if (ret & _PAGE_PRESENT) ret = pte_machine_to_phys(ret);
return ret;
}
+#define __pgd_val(x) ((x).pgd)
static inline unsigned long pgd_val(pgd_t x)
{
- unsigned long ret = x.pgd;
+ unsigned long ret = __pgd_val(x);
if (ret & _PAGE_PRESENT) ret = pte_machine_to_phys(ret);
return ret;
}
diff --git a/linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/asm/pgtable.h b/linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/asm/pgtable.h
index 0c14e0122d..47f483f5ca 100644
--- a/linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/asm/pgtable.h
+++ b/linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/asm/pgtable.h
@@ -82,16 +82,20 @@ extern unsigned long empty_zero_page[PAGE_SIZE/sizeof(unsigned long)];
#define PTRS_PER_PTE 512
#define pte_ERROR(e) \
- printk("%s:%d: bad pte %p(%016lx).\n", __FILE__, __LINE__, &(e), pte_val(e))
+ printk("%s:%d: bad pte %p(%016lx pfn %010lx).\n", __FILE__, __LINE__, \
+ &(e), __pte_val(e), pte_pfn(e))
#define pmd_ERROR(e) \
- printk("%s:%d: bad pmd %p(%016lx).\n", __FILE__, __LINE__, &(e), pmd_val(e))
+ printk("%s:%d: bad pmd %p(%016lx pfn %010lx).\n", __FILE__, __LINE__, \
+ &(e), __pmd_val(e), pmd_pfn(e))
#define pud_ERROR(e) \
- printk("%s:%d: bad pud %p(%016lx).\n", __FILE__, __LINE__, &(e), pud_val(e))
+ printk("%s:%d: bad pud %p(%016lx pfn %010lx).\n", __FILE__, __LINE__, \
+ &(e), __pud_val(e), (pud_val(e) & __PHYSICAL_MASK) >> PAGE_SHIFT)
#define pgd_ERROR(e) \
- printk("%s:%d: bad pgd %p(%016lx).\n", __FILE__, __LINE__, &(e), pgd_val(e))
+ printk("%s:%d: bad pgd %p(%016lx pfn %010lx).\n", __FILE__, __LINE__, \
+ &(e), __pgd_val(e), (pgd_val(e) & __PHYSICAL_MASK) >> PAGE_SHIFT)
-#define pgd_none(x) (!pgd_val(x))
-#define pud_none(x) (!pud_val(x))
+#define pgd_none(x) (!__pgd_val(x))
+#define pud_none(x) (!__pud_val(x))
static inline void set_pte(pte_t *dst, pte_t val)
{
@@ -236,7 +240,7 @@ extern unsigned int __kernel_page_user;
static inline unsigned long pgd_bad(pgd_t pgd)
{
- unsigned long val = pgd_val(pgd);
+ unsigned long val = __pgd_val(pgd);
val &= ~PTE_MASK;
val &= ~(_PAGE_USER | _PAGE_DIRTY);
return val & ~(_PAGE_PRESENT | _PAGE_RW | _PAGE_ACCESSED);
@@ -244,7 +248,7 @@ static inline unsigned long pgd_bad(pgd_t pgd)
static inline unsigned long pud_bad(pud_t pud)
{
- unsigned long val = pud_val(pud);
+ unsigned long val = __pud_val(pud);
val &= ~PTE_MASK;
val &= ~(_PAGE_USER | _PAGE_DIRTY);
return val & ~(_PAGE_PRESENT | _PAGE_RW | _PAGE_ACCESSED);
@@ -322,8 +326,6 @@ static inline pte_t ptep_get_and_clear_full(struct mm_struct *mm, unsigned long
* The following only work if pte_present() is true.
* Undefined behaviour if not..
*/
-#define __pte_val(x) ((x).pte)
-
#define __LARGE_PTE (_PAGE_PSE|_PAGE_PRESENT)
static inline int pte_user(pte_t pte) { return __pte_val(pte) & _PAGE_USER; }
static inline int pte_read(pte_t pte) { return __pte_val(pte) & _PAGE_USER; }
@@ -377,7 +379,7 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr,
#define pgprot_noncached(prot) (__pgprot(pgprot_val(prot) | _PAGE_PCD | _PAGE_PWT))
static inline int pmd_large(pmd_t pte) {
- return (pmd_val(pte) & __LARGE_PTE) == __LARGE_PTE;
+ return (__pmd_val(pte) & __LARGE_PTE) == __LARGE_PTE;
}
@@ -394,14 +396,14 @@ static inline int pmd_large(pmd_t pte) {
#define pgd_index(address) (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1))
#define pgd_offset(mm, addr) ((mm)->pgd + pgd_index(addr))
#define pgd_offset_k(address) (pgd_t *)(init_level4_pgt + pgd_index(address))
-#define pgd_present(pgd) (pgd_val(pgd) & _PAGE_PRESENT)
+#define pgd_present(pgd) (__pgd_val(pgd) & _PAGE_PRESENT)
#define mk_kernel_pgd(address) __pgd((address) | _KERNPG_TABLE)
/* PUD - Level3 access */
/* to find an entry in a page-table-directory. */
#define pud_index(address) (((address) >> PUD_SHIFT) & (PTRS_PER_PUD-1))
#define pud_offset(pgd, address) ((pud_t *) pgd_page(*(pgd)) + pud_index(address))
-#define pud_present(pud) (pud_val(pud) & _PAGE_PRESENT)
+#define pud_present(pud) (__pud_val(pud) & _PAGE_PRESENT)
/* PMD - Level 2 access */
#define pmd_page_kernel(pmd) ((unsigned long) __va(pmd_val(pmd) & PTE_MASK))
@@ -410,21 +412,21 @@ static inline int pmd_large(pmd_t pte) {
#define pmd_index(address) (((address) >> PMD_SHIFT) & (PTRS_PER_PMD-1))
#define pmd_offset(dir, address) ((pmd_t *) pud_page(*(dir)) + \
pmd_index(address))
-#define pmd_none(x) (!pmd_val(x))
+#define pmd_none(x) (!__pmd_val(x))
#if CONFIG_XEN_COMPAT <= 0x030002
/* pmd_present doesn't just test the _PAGE_PRESENT bit since wr.p.t.
can temporarily clear it. */
-#define pmd_present(x) (pmd_val(x))
+#define pmd_present(x) (__pmd_val(x))
#else
-#define pmd_present(x) (pmd_val(x) & _PAGE_PRESENT)
+#define pmd_present(x) (__pmd_val(x) & _PAGE_PRESENT)
#endif
#define pmd_clear(xp) do { set_pmd(xp, __pmd(0)); } while (0)
-#define pmd_bad(x) ((pmd_val(x) & ~(PTE_MASK | _PAGE_USER | _PAGE_PRESENT)) \
+#define pmd_bad(x) ((__pmd_val(x) & ~(PTE_MASK | _PAGE_USER | _PAGE_PRESENT)) \
!= (_KERNPG_TABLE & ~(_PAGE_USER | _PAGE_PRESENT)))
#define pfn_pmd(nr,prot) (__pmd(((nr) << PAGE_SHIFT) | pgprot_val(prot)))
#define pmd_pfn(x) ((pmd_val(x) & __PHYSICAL_MASK) >> PAGE_SHIFT)
-#define pte_to_pgoff(pte) ((pte_val(pte) & PHYSICAL_PAGE_MASK) >> PAGE_SHIFT)
+#define pte_to_pgoff(pte) ((__pte_val(pte) & PHYSICAL_PAGE_MASK) >> PAGE_SHIFT)
#define pgoff_to_pte(off) ((pte_t) { ((off) << PAGE_SHIFT) | _PAGE_FILE })
#define PTE_FILE_MAX_BITS __PHYSICAL_MASK_SHIFT
@@ -432,7 +434,7 @@ static inline int pmd_large(pmd_t pte) {
/* page, protection -> pte */
#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot))
-#define mk_pte_huge(entry) (pte_val(entry) |= _PAGE_PRESENT | _PAGE_PSE)
+#define mk_pte_huge(entry) (__pte_val(entry) |= _PAGE_PRESENT | _PAGE_PSE)
/* physical address -> PTE */
static inline pte_t mk_pte_phys(unsigned long physpage, pgprot_t pgprot)