* Don't assume that decode_vmx_inst() always returns X86EMUL_EXCEPTION.
* The okay boolean is never written, making the else case dead.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Sergey Dyasli <sergey.dyasli@citrix.com>
Acked-by: Kevin Tian <kevin.tian@intel.com>
struct vmx_inst_decoded decode;
unsigned long operand;
u64 vmcs_encoding;
- bool_t okay = 1;
enum vmx_insn_errno err;
+ int rc;
- if ( decode_vmx_inst(regs, &decode, &operand) != X86EMUL_OKAY )
- return X86EMUL_EXCEPTION;
+ rc = decode_vmx_inst(regs, &decode, &operand);
+ if ( rc != X86EMUL_OKAY )
+ return rc;
if ( !vvmcx_valid(v) )
{
break;
}
- if ( okay )
- vmsucceed(regs);
- else
- vmfail_valid(regs, VMX_INSN_UNSUPPORTED_VMCS_COMPONENT);
+ vmsucceed(regs);
return X86EMUL_OKAY;
}