Commit 702eb8d2 authored by Paolo Bonzini's avatar Paolo Bonzini Committed by Sasha Levin

kvm: async_pf: fix rcu_irq_enter() with irqs enabled

[ Upstream commit bbaf0e2b ]

native_safe_halt enables interrupts, and you just shouldn't
call rcu_irq_enter() with interrupts enabled.  Reorder the
call with the following local_irq_disable() to respect the
invariant.
Reported-by: default avatarRoss Zwisler <ross.zwisler@linux.intel.com>
Cc: stable@vger.kernel.org
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Acked-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tested-by: default avatarWanpeng Li <wanpeng.li@hotmail.com>
Signed-off-by: default avatarRadim Krčmář <rkrcmar@redhat.com>
Signed-off-by: default avatarSasha Levin <alexander.levin@verizon.com>
parent 4b1bf4b0
...@@ -161,8 +161,8 @@ void kvm_async_pf_task_wait(u32 token) ...@@ -161,8 +161,8 @@ void kvm_async_pf_task_wait(u32 token)
*/ */
rcu_irq_exit(); rcu_irq_exit();
native_safe_halt(); native_safe_halt();
rcu_irq_enter();
local_irq_disable(); local_irq_disable();
rcu_irq_enter();
} }
} }
if (!n.halted) if (!n.halted)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment