mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 14:42:24 +00:00
[PATCH] kvm: fix vcpu freeing bug
vcpu_load() can return NULL and it sometimes does in failure paths (for example when the userspace ABI version is too old) - causing a preemption count underflow in the ->vcpu_free() later on. So check for NULL. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Avi Kivity <avi@qumranet.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
8cd133073f
commit
1e8ba6fba5
@ -272,7 +272,9 @@ static void kvm_free_physmem(struct kvm *kvm)
|
||||
|
||||
static void kvm_free_vcpu(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
vcpu_load(vcpu->kvm, vcpu_slot(vcpu));
|
||||
if (!vcpu_load(vcpu->kvm, vcpu_slot(vcpu)))
|
||||
return;
|
||||
|
||||
kvm_mmu_destroy(vcpu);
|
||||
vcpu_put(vcpu);
|
||||
kvm_arch_ops->vcpu_free(vcpu);
|
||||
|
Loading…
Reference in New Issue
Block a user