mirror of
https://github.com/torvalds/linux.git
synced 2024-12-12 14:12:51 +00:00
KVM: x86: drop calling kvm_mmu_zap_all in emulator_fix_hypercall
Quote Gleb's mail:
| Back then kvm->lock protected memslot access so code like:
|
| mutex_lock(&vcpu->kvm->lock);
| kvm_mmu_zap_all(vcpu->kvm);
| mutex_unlock(&vcpu->kvm->lock);
|
| which is what 7aa81cc0
does was enough to guaranty that no vcpu will
| run while code is patched. This is no longer the case and
| mutex_lock(&vcpu->kvm->lock); is gone from that code path long time ago,
| so now kvm_mmu_zap_all() there is useless and the code is incorrect.
So we drop it and it will be fixed later
Signed-off-by: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
Reviewed-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
This commit is contained in:
parent
6ea34c9b78
commit
758ccc89b8
@ -5523,13 +5523,6 @@ static int emulator_fix_hypercall(struct x86_emulate_ctxt *ctxt)
|
|||||||
char instruction[3];
|
char instruction[3];
|
||||||
unsigned long rip = kvm_rip_read(vcpu);
|
unsigned long rip = kvm_rip_read(vcpu);
|
||||||
|
|
||||||
/*
|
|
||||||
* Blow out the MMU to ensure that no other VCPU has an active mapping
|
|
||||||
* to ensure that the updated hypercall appears atomically across all
|
|
||||||
* VCPUs.
|
|
||||||
*/
|
|
||||||
kvm_mmu_zap_all(vcpu->kvm);
|
|
||||||
|
|
||||||
kvm_x86_ops->patch_hypercall(vcpu, instruction);
|
kvm_x86_ops->patch_hypercall(vcpu, instruction);
|
||||||
|
|
||||||
return emulator_write_emulated(ctxt, rip, instruction, 3, NULL);
|
return emulator_write_emulated(ctxt, rip, instruction, 3, NULL);
|
||||||
|
Loading…
Reference in New Issue
Block a user