On Fri, Mar 04, 2022 at 01:59:14PM +0000, Marc Zyngier wrote: > Now that we properly account for interrupts taken whilst the guest > was running, it becomes obvious that there is no need to open > this accounting window if we didn't exit because of an interrupt. > > This saves a number of system register accesses and other barriers > if we exited for any other reason (such as a trap, for example). > > Signed-off-by: Marc Zyngier <maz@xxxxxxxxxx> Acked-by: Mark Rutland <mark.rutland@xxxxxxx> Mark. > --- > arch/arm64/kvm/arm.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c > index fefd5774ab55..f49ebdd9c990 100644 > --- a/arch/arm64/kvm/arm.c > +++ b/arch/arm64/kvm/arm.c > @@ -887,9 +887,11 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu) > * context synchronization event) is necessary to ensure that > * pending interrupts are taken. > */ > - local_irq_enable(); > - isb(); > - local_irq_disable(); > + if (ARM_EXCEPTION_CODE(ret) == ARM_EXCEPTION_IRQ) { > + local_irq_enable(); > + isb(); > + local_irq_disable(); > + } > > guest_timing_exit_irqoff(); > > -- > 2.34.1 >