• Michael Neuling's avatar
    powerpc/tm: Fix restoration of MSR on 32bit signal return · bc8ae522
    Michael Neuling authored
    commit 2c27a18f upstream.
    
    Currently we clear out the MSR TM bits on signal return assuming that the
    signal should never return to an active transaction.
    
    This is bogus as the user may do this.  It's most likely the transaction will
    be doomed due to a treclaim but that's a problem for the HW not the kernel.
    
    The current code is a legacy of earlier kernel implementations which did
    software rollback of active transactions in the kernel.  That code has now gone
    but we didn't correctly fix up this part of the signals code which still makes
    the assumption that it must be returning to a suspended transaction.
    
    This pulls out both MSR TM bits from the user supplied context rather than just
    setting TM suspend.  We pull out only the bits needed to ensure the user can't
    do anything dangerous to the MSR.
    Signed-off-by: default avatarMichael Neuling <mikey@neuling.org>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    bc8ae522
signal_32.c 43.4 KB