aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-x86/paravirt.h
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy@goop.org>2008-01-30 07:33:15 -0500
committerIngo Molnar <mingo@elte.hu>2008-01-30 07:33:15 -0500
commit28c6075c72a312986f6d7802005251bdb91ca80c (patch)
treedabaf04448ba79f98b61bfd975868d3c87a1ab24 /include/asm-x86/paravirt.h
parent60b3f626dee9f0b1b656918e40e211822c18200d (diff)
x86/paravirt: make set_pud operation common
Remove duplicate set_pud()s. Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include/asm-x86/paravirt.h')
-rw-r--r--include/asm-x86/paravirt.h18
1 files changed, 10 insertions, 8 deletions
diff --git a/include/asm-x86/paravirt.h b/include/asm-x86/paravirt.h
index d9957ece49b5..c56b17a5eba0 100644
--- a/include/asm-x86/paravirt.h
+++ b/include/asm-x86/paravirt.h
@@ -1086,17 +1086,19 @@ static inline pmdval_t pmd_val(pmd_t pmd)
1086 1086
1087 return ret; 1087 return ret;
1088} 1088}
1089#endif /* PAGETABLE_LEVELS >= 3 */
1090
1091#ifdef CONFIG_X86_PAE
1092 1089
1093static inline void set_pud(pud_t *pudp, pud_t pudval) 1090static inline void set_pud(pud_t *pudp, pud_t pud)
1094{ 1091{
1095 PVOP_VCALL3(pv_mmu_ops.set_pud, pudp, 1092 pudval_t val = native_pud_val(pud);
1096 pudval.pgd.pgd, pudval.pgd.pgd >> 32);
1097}
1098 1093
1099#endif /* CONFIG_X86_PAE */ 1094 if (sizeof(pudval_t) > sizeof(long))
1095 PVOP_VCALL3(pv_mmu_ops.set_pud, pudp,
1096 val, (u64)val >> 32);
1097 else
1098 PVOP_VCALL2(pv_mmu_ops.set_pud, pudp,
1099 val);
1100}
1101#endif /* PAGETABLE_LEVELS >= 3 */
1100 1102
1101/* Lazy mode for batching updates / context switch */ 1103/* Lazy mode for batching updates / context switch */
1102enum paravirt_lazy_mode { 1104enum paravirt_lazy_mode {