+++ /dev/null
-From 20e8175d246e9f9deb377f2784b3e7dfb2ad3e86 Mon Sep 17 00:00:00 2001
-From: Marc Zyngier <marc.zyngier@arm.com>
-Date: Tue, 6 Feb 2018 17:56:06 +0000
-Subject: arm: KVM: Fix SMCCC handling of unimplemented SMC/HVC calls
-
-From: Marc Zyngier <marc.zyngier@arm.com>
-
-commit 20e8175d246e9f9deb377f2784b3e7dfb2ad3e86 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.
-
-Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
-Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
-Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- arch/arm/kvm/handle_exit.c | 13 +++++++++++--
- 1 file changed, 11 insertions(+), 2 deletions(-)
-
---- a/arch/arm/kvm/handle_exit.c
-+++ b/arch/arm/kvm/handle_exit.c
-@@ -45,7 +45,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;
- }
-
-@@ -54,7 +54,16 @@ static int handle_hvc(struct kvm_vcpu *v
-
- static int handle_smc(struct kvm_vcpu *vcpu, struct kvm_run *run)
- {
-- kvm_inject_undefined(vcpu);
-+ /*
-+ * "If an SMC instruction executed at Non-secure EL1 is
-+ * trapped to EL2 because HCR_EL2.TSC is 1, the exception is a
-+ * Trap exception, not a Secure Monitor Call exception [...]"
-+ *
-+ * We need to advance the PC after the trap, as it would
-+ * otherwise return to the same address...
-+ */
-+ vcpu_set_reg(vcpu, 0, ~0UL);
-+ kvm_skip_instr(vcpu, kvm_vcpu_trap_il_is32bit(vcpu));
- return 1;
- }
-
crypto-hash-introduce-crypto_hash_alg_has_setkey.patch
crypto-cryptd-pass-through-absence-of-setkey.patch
crypto-caam-fix-endless-loop-when-deco-acquire-fails.patch
-arm-kvm-fix-smccc-handling-of-unimplemented-smc-hvc-calls.patch
media-cxusb-dib0700-ignore-xc2028_i2c_flush.patch
kernel-async.c-revert-async-simplify-lowest_in_progress.patch
signal-openrisc-fix-do_unaligned_access-to-send-the-proper-signal.patch