• Nicholas Piggin's avatar
    powerpc/64s: Fix KVM system reset handling when CONFIG_PPC_PSERIES=y · 575cba20
    Nicholas Piggin authored
    pseries guest kernels have a FWNMI handler for SRESET and MCE NMIs,
    which is basically the same as the regular handlers for those
    interrupts.
    
    The system reset FWNMI handler did not have a KVM guest test in it,
    although it probably should have because the guest can itself run
    guests.
    
    Commit 4f50541f ("powerpc/64s/exception: Move all interrupt
    handlers to new style code gen macros") convert the handler faithfully
    to avoid a KVM test with a "clever" trick to modify the IKVM_REAL
    setting to 0 when the fwnmi handler is to be generated (PPC_PSERIES=y).
    This worked when the KVM test was generated in the interrupt entry
    handlers, but a later patch moved the KVM test to the common handler,
    and the common handler macro is expanded below the fwnmi entry. This
    prevents the KVM test from being generated even for the 0x100 entry
    point as well.
    
    The result is NMI IPIs in the host kernel when a guest is running will
    use gest registers. This goes particularly badly when an HPT guest is
    running and the MMU is set to guest mode.
    
    Remove this trickery and just generate the test always.
    
    Fixes: 9600f261
    
     ("powerpc/64s/exception: Move KVM test to common code")
    Cc: stable@vger.kernel.org # v5.7+
    Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20201114114743.3306283-1-npiggin@gmail.com
    575cba20
exceptions-64s.S 89.3 KB