From: Greg Kroah-Hartman Date: Mon, 22 Jan 2018 08:57:07 +0000 (+0100) Subject: 3.18-stable patches X-Git-Tag: v4.4.113~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d737ff9bc5bbd39a87bb7db7a97b585f5d67e2b9;p=thirdparty%2Fkernel%2Fstable-queue.git 3.18-stable patches added patches: arm64-kvm-fix-smccc-handling-of-unimplemented-smc-hvc-calls.patch --- diff --git a/queue-3.18/arm64-kvm-fix-smccc-handling-of-unimplemented-smc-hvc-calls.patch b/queue-3.18/arm64-kvm-fix-smccc-handling-of-unimplemented-smc-hvc-calls.patch new file mode 100644 index 00000000000..5568ba870a6 --- /dev/null +++ b/queue-3.18/arm64-kvm-fix-smccc-handling-of-unimplemented-smc-hvc-calls.patch @@ -0,0 +1,45 @@ +From acfb3b883f6d6a4b5d27ad7fdded11f6a09ae6dd Mon Sep 17 00:00:00 2001 +From: Marc Zyngier +Date: Tue, 16 Jan 2018 10:23:47 +0000 +Subject: arm64: KVM: Fix SMCCC handling of unimplemented SMC/HVC calls + +From: Marc Zyngier + +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 +Signed-off-by: Christoffer Dall +Signed-off-by: Greg Kroah-Hartman + +--- + 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_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_reg(vcpu, 0) = ~0UL; + return 1; + } + diff --git a/queue-3.18/series b/queue-3.18/series index b8240b90dd4..3b8961a17cc 100644 --- a/queue-3.18/series +++ b/queue-3.18/series @@ -15,3 +15,4 @@ phy-work-around-phys-references-to-usb-nop-xceiv-devices.patch arm-dts-kirkwood-fix-pin-muxing-of-mpp7-on-openblocks-a7.patch dm-btree-fix-serious-bug-in-btree_split_beneath.patch dm-thin-metadata-thin_max_concurrent_locks-should-be-6.patch +arm64-kvm-fix-smccc-handling-of-unimplemented-smc-hvc-calls.patch