diff --git a/arch/arm64/kvm/psci.c b/arch/arm64/kvm/psci.c index 371ebbc6b529..cc675b651d63 100644 --- a/arch/arm64/kvm/psci.c +++ b/arch/arm64/kvm/psci.c @@ -339,14 +339,14 @@ static int kvm_psci_1_x_call(struct kvm_vcpu *vcpu, u32 minor) if (minor >= 1) { arg = smccc_get_arg1(vcpu); - if (arg <= PSCI_1_1_RESET_TYPE_SYSTEM_WARM_RESET || - arg >= PSCI_1_1_RESET_TYPE_VENDOR_START) { + if (arg > PSCI_1_1_RESET_TYPE_SYSTEM_WARM_RESET && + arg < PSCI_1_1_RESET_TYPE_VENDOR_START) { + val = PSCI_RET_INVALID_PARAMS; + } else { kvm_psci_system_reset2(vcpu); - vcpu_set_reg(vcpu, 0, PSCI_RET_INTERNAL_FAILURE); - return 0; + val = PSCI_RET_INTERNAL_FAILURE; + ret = 0; } - - val = PSCI_RET_INVALID_PARAMS; break; }; fallthrough;