• Nicholas Piggin's avatar
    powerpc/64s/exception: Fix machine check early corrupting AMR · e13e7cd4
    Nicholas Piggin authored
    The early machine check runs in real mode, so locking is unnecessary.
    Worse, the windup does not restore AMR, so this can result in a false
    KUAP fault after a recoverable machine check hits inside a user copy
    operation.
    
    Fix this similarly to HMI by just avoiding the kuap lock in the
    early machine check handler (it will be set by the late handler that
    runs in virtual mode if that runs). If the virtual mode handler is
    reached, it will lock and restore the AMR.
    
    Fixes: 890274c2 ("powerpc/64s: Implement KUAP for Radix MMU")
    Cc: Russell Currey <ruscur@russell.cc>
    Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    e13e7cd4
exceptions-64s.S 54.6 KB