diff options
-rw-r--r-- | arch/x86/kernel/paravirt.c | 2 | ||||
-rw-r--r-- | include/asm-x86/page.h | 7 | ||||
-rw-r--r-- | include/asm-x86/paravirt.h | 3 |
3 files changed, 10 insertions, 2 deletions
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c index 097d8a6797fa..94da4d52d798 100644 --- a/arch/x86/kernel/paravirt.c +++ b/arch/x86/kernel/paravirt.c | |||
@@ -443,7 +443,7 @@ struct pv_mmu_ops pv_mmu_ops = { | |||
443 | #endif /* PAGETABLE_LEVELS >= 3 */ | 443 | #endif /* PAGETABLE_LEVELS >= 3 */ |
444 | 444 | ||
445 | .pte_val = native_pte_val, | 445 | .pte_val = native_pte_val, |
446 | .pte_flags = native_pte_val, | 446 | .pte_flags = native_pte_flags, |
447 | .pgd_val = native_pgd_val, | 447 | .pgd_val = native_pgd_val, |
448 | 448 | ||
449 | .make_pte = native_make_pte, | 449 | .make_pte = native_make_pte, |
diff --git a/include/asm-x86/page.h b/include/asm-x86/page.h index 28d7b4533b1a..05d9bea2bfd5 100644 --- a/include/asm-x86/page.h +++ b/include/asm-x86/page.h | |||
@@ -144,6 +144,11 @@ static inline pteval_t native_pte_val(pte_t pte) | |||
144 | return pte.pte; | 144 | return pte.pte; |
145 | } | 145 | } |
146 | 146 | ||
147 | static inline pteval_t native_pte_flags(pte_t pte) | ||
148 | { | ||
149 | return native_pte_val(pte) & ~PTE_MASK; | ||
150 | } | ||
151 | |||
147 | #define pgprot_val(x) ((x).pgprot) | 152 | #define pgprot_val(x) ((x).pgprot) |
148 | #define __pgprot(x) ((pgprot_t) { (x) } ) | 153 | #define __pgprot(x) ((pgprot_t) { (x) } ) |
149 | 154 | ||
@@ -165,7 +170,7 @@ static inline pteval_t native_pte_val(pte_t pte) | |||
165 | #endif | 170 | #endif |
166 | 171 | ||
167 | #define pte_val(x) native_pte_val(x) | 172 | #define pte_val(x) native_pte_val(x) |
168 | #define pte_flags(x) native_pte_val(x) | 173 | #define pte_flags(x) native_pte_flags(x) |
169 | #define __pte(x) native_make_pte(x) | 174 | #define __pte(x) native_make_pte(x) |
170 | 175 | ||
171 | #endif /* CONFIG_PARAVIRT */ | 176 | #endif /* CONFIG_PARAVIRT */ |
diff --git a/include/asm-x86/paravirt.h b/include/asm-x86/paravirt.h index aec9767836b6..5ca4639dc7dd 100644 --- a/include/asm-x86/paravirt.h +++ b/include/asm-x86/paravirt.h | |||
@@ -1088,6 +1088,9 @@ static inline pteval_t pte_flags(pte_t pte) | |||
1088 | ret = PVOP_CALL1(pteval_t, pv_mmu_ops.pte_flags, | 1088 | ret = PVOP_CALL1(pteval_t, pv_mmu_ops.pte_flags, |
1089 | pte.pte); | 1089 | pte.pte); |
1090 | 1090 | ||
1091 | #ifdef CONFIG_PARAVIRT_DEBUG | ||
1092 | BUG_ON(ret & PTE_MASK); | ||
1093 | #endif | ||
1091 | return ret; | 1094 | return ret; |
1092 | } | 1095 | } |
1093 | 1096 | ||