KVM: PPC: Book3E: Fix CONFIG_TRACE_IRQFLAGS support
authorNicholas Piggin <npiggin@gmail.com>
Sun, 27 Nov 2022 12:49:26 +0000 (22:49 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 30 Nov 2022 09:40:17 +0000 (20:40 +1100)
commit6c645b01e536757a9e1a9f72c13767f9b3f8559f
tree30bc5fbdfc2e6ea5f820015292163f248b948b50
parenta96b20758b23be7e9f693218908228d6100c3c26
KVM: PPC: Book3E: Fix CONFIG_TRACE_IRQFLAGS support

32-bit does not trace_irqs_off() to match the trace_irqs_on() call in
kvmppc_fix_ee_before_entry(). This can lead to irqs being enabled twice
in the trace, and the irqs-off region between guest exit and the host
enabling local irqs again is not properly traced.

64-bit code does call this, but from asm code where volatiles are live
and so incorrectly get clobbered.

Move the irq reconcile into C to fix both problems.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20221127124942.1665522-2-npiggin@gmail.com
arch/powerpc/include/asm/kvm_ppc.h
arch/powerpc/kvm/booke.c
arch/powerpc/kvm/bookehv_interrupts.S