arm64: hyp/kvm: Make hyp-stub reject kvm_call_hyp()
[firefly-linux-kernel-4.4.55.git] / arch / arm64 / kvm / handle_exit.c
index 198cf10b262d85d5df12963366eeda8d41a5ef83..25006a7a5316924d472f0d676b933e8007ca8dfe 100644 (file)
@@ -183,6 +183,13 @@ int handle_exit(struct kvm_vcpu *vcpu, struct kvm_run *run,
                exit_handler = kvm_get_exit_handler(vcpu);
 
                return exit_handler(vcpu, run);
+       case ARM_EXCEPTION_HYP_GONE:
+               /*
+                * EL2 has been reset to the hyp-stub. This happens when a guest
+                * is pre-empted by kvm_reboot()'s shutdown call.
+                */
+               run->exit_reason = KVM_EXIT_FAIL_ENTRY;
+               return 0;
        default:
                kvm_pr_unimpl("Unsupported exception type: %d",
                              exception_index);