+++ /dev/null
-From acfb3b883f6d6a4b5d27ad7fdded11f6a09ae6dd Mon Sep 17 00:00:00 2001
-From: Marc Zyngier <marc.zyngier@arm.com>
-Date: Tue, 16 Jan 2018 10:23:47 +0000
-Subject: arm64: KVM: Fix SMCCC handling of unimplemented SMC/HVC calls
-
-From: Marc Zyngier <marc.zyngier@arm.com>
-
-commit acfb3b883f6d6a4b5d27ad7fdded11f6a09ae6dd upstream.
-
-KVM doesn't follow the SMCCC when it comes to unimplemented calls,
-and inject an UNDEF instead of returning an error. Since firmware
-calls are now used for security mitigation, they are becoming more
-common, and the undef is counter productive.
-
-Instead, let's follow the SMCCC which states that -1 must be returned
-to the caller when getting an unknown function number.
-
-Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
-Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- arch/arm64/kvm/handle_exit.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/arch/arm64/kvm/handle_exit.c
-+++ b/arch/arm64/kvm/handle_exit.c
-@@ -34,7 +34,7 @@ static int handle_hvc(struct kvm_vcpu *v
-
- ret = kvm_psci_call(vcpu);
- if (ret < 0) {
-- kvm_inject_undefined(vcpu);
-+ vcpu_set_reg(vcpu, 0, ~0UL);
- return 1;
- }
-
-@@ -43,7 +43,7 @@ static int handle_hvc(struct kvm_vcpu *v
-
- static int handle_smc(struct kvm_vcpu *vcpu, struct kvm_run *run)
- {
-- kvm_inject_undefined(vcpu);
-+ vcpu_set_reg(vcpu, 0, ~0UL);
- return 1;
- }
-