Re: Patch "arm64: KVM: Fix SMCCC handling of unimplemented SMC/HVC calls" has been added to the 3.18-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]