]> 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)
commit16f55c4f902e9496575069141c0473ac9b0aa21d
tree955a3c744216141bc2beb4e4e93655e3dec37598
parent90a306eae1f23d272fc91b207e9e65ec33eca5c7
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: 75a15e086457 ("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