Re: [PATCH stable-5.7] KVM: arm64: Synchronize sysreg state on injecting an AArch32 exception

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

 



On Tue, Jun 16, 2020 at 01:52:00PM +0100, Marc Zyngier wrote:
> commit 0370964dd3ff7d3d406f292cb443a927952cbd05 upstream
> 
> On a VHE system, the EL1 state is left in the CPU most of the time,
> and only syncronized back to memory when vcpu_put() is called (most
> of the time on preemption).
> 
> Which means that when injecting an exception, we'd better have a way
> to either:
> (1) write directly to the EL1 sysregs
> (2) synchronize the state back to memory, and do the changes there
> 
> For an AArch64, we already do (1), so we are safe. Unfortunately,
> doing the same thing for AArch32 would be pretty invasive. Instead,
> we can easily implement (2) by calling the put/load architectural
> backends, and keep preemption disabled. We can then reload the
> state back into EL1.
> 
> Cc: stable@xxxxxxxxxxxxxxx
> Reported-by: James Morse <james.morse@xxxxxxx>
> Signed-off-by: Marc Zyngier <maz@xxxxxxxxxx>
> ---
>  virt/kvm/arm/aarch32.c | 28 ++++++++++++++++++++++++++++
>  1 file changed, 28 insertions(+)

Thanks for this, and the other backport.  Queued up.

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]

  Powered by Linux