int kvm_psci_call(struct kvm_vcpu *vcpu)
 {
        u32 psci_fn = smccc_get_function(vcpu);
+       int version = kvm_psci_version(vcpu);
        unsigned long val;
 
        val = kvm_psci_check_allowed_function(vcpu, psci_fn);
                return 1;
        }
 
-       switch (kvm_psci_version(vcpu)) {
+       switch (version) {
        case KVM_ARM_PSCI_1_1:
                return kvm_psci_1_x_call(vcpu, 1);
        case KVM_ARM_PSCI_1_0:
        case KVM_ARM_PSCI_0_1:
                return kvm_psci_0_1_call(vcpu);
        default:
-               return -EINVAL;
+               WARN_ONCE(1, "Unknown PSCI version %d", version);
+               smccc_set_retval(vcpu, SMCCC_RET_NOT_SUPPORTED, 0, 0, 0);
+               return 1;
        }
 }