On Mon, Jan 22, 2018 at 08:54:01AM +0000, Marc Zyngier wrote: > On 21/01/18 12:32, gregkh@xxxxxxxxxxxxxxxxxxx wrote: > > > > This is a note to let you know that I've just added the patch titled > > > > arm64: KVM: Fix SMCCC handling of unimplemented SMC/HVC calls > > > > to the 3.18-stable tree which can be found at: > > http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary > > > > The filename of the patch is: > > arm64-kvm-fix-smccc-handling-of-unimplemented-smc-hvc-calls.patch > > and it can be found in the queue-3.18 subdirectory. > > > > If you, or anyone else, feels it should not be added to the stable tree, > > please let <stable@xxxxxxxxxxxxxxx> know about it. > > > > > > From acfb3b883f6d6a4b5d27ad7fdded11f6a09ae6dd Mon Sep 17 00:00:00 2001 > > From: Marc Zyngier <marc.zyngier@xxxxxxx> > > 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@xxxxxxx> > > > > 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@xxxxxxx> > > Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> > > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > > > > --- > > 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; > > } > > > > > > > > Patches currently in stable-queue which might be from marc.zyngier@xxxxxxx are > > > > queue-3.18/arm64-kvm-fix-smccc-handling-of-unimplemented-smc-hvc-calls.patch > > This doesn't compile on 3.18. Here's the 3.18 fix: Ah, nice, thanks for this, I had dropped it assuming it wasn't needed there. I'll go queue this up now. greg k-h