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: 8fcc4b59 ("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>
Loading
Please register or sign in to comment