diff options
author | Jeremy Fitzhardinge <jeremy@goop.org> | 2008-01-30 07:33:15 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:33:15 -0500 |
commit | 28c6075c72a312986f6d7802005251bdb91ca80c (patch) | |
tree | dabaf04448ba79f98b61bfd975868d3c87a1ab24 /include/asm-x86/paravirt.h | |
parent | 60b3f626dee9f0b1b656918e40e211822c18200d (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.h | 18 |
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 | ||
1093 | static inline void set_pud(pud_t *pudp, pud_t pudval) | 1090 | static 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 */ |
1102 | enum paravirt_lazy_mode { | 1104 | enum paravirt_lazy_mode { |