ARM: KVM: Run the exit handling code with disabled preemption

It is important to handle the exit code on the same CPU as the guest,
specially as we're accessing resources that are per-CPU (caches,
for exemple).

To achieve this, make the section that encompassing both
__kvm_vcpu_run() and handle_exit().

user_mem_abort() can sleep though (as it calls gfp_to_pfn()), so
preemption has to be reenabled at that stage.

Reported-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2 files changed