|
@@ -263,6 +263,18 @@ void paravirt_leave_lazy_mmu(void)
|
|
|
leave_lazy(PARAVIRT_LAZY_MMU);
|
|
|
}
|
|
|
|
|
|
+void paravirt_flush_lazy_mmu(void)
|
|
|
+{
|
|
|
+ preempt_disable();
|
|
|
+
|
|
|
+ if (paravirt_get_lazy_mode() == PARAVIRT_LAZY_MMU) {
|
|
|
+ arch_leave_lazy_mmu_mode();
|
|
|
+ arch_enter_lazy_mmu_mode();
|
|
|
+ }
|
|
|
+
|
|
|
+ preempt_enable();
|
|
|
+}
|
|
|
+
|
|
|
void paravirt_start_context_switch(struct task_struct *prev)
|
|
|
{
|
|
|
BUG_ON(preemptible());
|
|
@@ -292,18 +304,6 @@ enum paravirt_lazy_mode paravirt_get_lazy_mode(void)
|
|
|
return this_cpu_read(paravirt_lazy_mode);
|
|
|
}
|
|
|
|
|
|
-void arch_flush_lazy_mmu_mode(void)
|
|
|
-{
|
|
|
- preempt_disable();
|
|
|
-
|
|
|
- if (paravirt_get_lazy_mode() == PARAVIRT_LAZY_MMU) {
|
|
|
- arch_leave_lazy_mmu_mode();
|
|
|
- arch_enter_lazy_mmu_mode();
|
|
|
- }
|
|
|
-
|
|
|
- preempt_enable();
|
|
|
-}
|
|
|
-
|
|
|
struct pv_info pv_info = {
|
|
|
.name = "bare hardware",
|
|
|
.paravirt_enabled = 0,
|
|
@@ -475,6 +475,7 @@ struct pv_mmu_ops pv_mmu_ops = {
|
|
|
.lazy_mode = {
|
|
|
.enter = paravirt_nop,
|
|
|
.leave = paravirt_nop,
|
|
|
+ .flush = paravirt_nop,
|
|
|
},
|
|
|
|
|
|
.set_fixmap = native_set_fixmap,
|