From 016519f07ed9a76d98d57e508b1e493c39b2eaac Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 16 Feb 2018 20:14:09 +0100 Subject: [PATCH] drop broken arm kvm patch from 3.18 --- ...dling-of-unimplemented-smc-hvc-calls.patch | 55 ------------------- queue-3.18/series | 1 - 2 files changed, 56 deletions(-) delete mode 100644 queue-3.18/arm-kvm-fix-smccc-handling-of-unimplemented-smc-hvc-calls.patch diff --git a/queue-3.18/arm-kvm-fix-smccc-handling-of-unimplemented-smc-hvc-calls.patch b/queue-3.18/arm-kvm-fix-smccc-handling-of-unimplemented-smc-hvc-calls.patch deleted file mode 100644 index 83403519815..00000000000 --- a/queue-3.18/arm-kvm-fix-smccc-handling-of-unimplemented-smc-hvc-calls.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 20e8175d246e9f9deb377f2784b3e7dfb2ad3e86 Mon Sep 17 00:00:00 2001 -From: Marc Zyngier -Date: Tue, 6 Feb 2018 17:56:06 +0000 -Subject: arm: KVM: Fix SMCCC handling of unimplemented SMC/HVC calls - -From: Marc Zyngier - -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 -Signed-off-by: Marc Zyngier -Signed-off-by: Catalin Marinas -Signed-off-by: Greg Kroah-Hartman - ---- - 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; - } - diff --git a/queue-3.18/series b/queue-3.18/series index 7eac3215f15..f4795f48835 100644 --- a/queue-3.18/series +++ b/queue-3.18/series @@ -31,7 +31,6 @@ kernfs-fix-regression-in-kernfs_fop_write-caused-by-wrong-type.patch 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 -- 2.47.3