]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: nVMX: Fix bad cleanup on error of get/set nested state IOCTLs
authorLiran Alon <liran.alon@oracle.com>
Sun, 16 Sep 2018 11:28:20 +0000 (14:28 +0300)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 20 Sep 2018 16:54:08 +0000 (18:54 +0200)
commitbe164f097f0817ad6c6c8a2679ee7c5abf91e85c
tree955a3c744216141bc2beb4e4e93655e3dec37598
parent1a623d2abbdb22fc8271c16f25725ad5fe5bceee
KVM: nVMX: Fix bad cleanup on error of get/set nested state IOCTLs

The handlers of IOCTLs in kvm_arch_vcpu_ioctl() are expected to set
their return value in "r" local var and break out of switch block
when they encounter some error.
This is because vcpu_load() is called before the switch block which
have a proper cleanup of vcpu_put() afterwards.

However, KVM_{GET,SET}_NESTED_STATE IOCTLs handlers just return
immediately on error without performing above mentioned cleanup.

Thus, change these handlers to behave as expected.

Fixes: 1877921b6206 ("kvm: nVMX: Introduce KVM_CAP_NESTED_STATE")
Reviewed-by: Mark Kanda <mark.kanda@oracle.com>
Reviewed-by: Patrick Colp <patrick.colp@oracle.com>
Signed-off-by: Liran Alon <liran.alon@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/x86.c