Patch "powerpc/tm: Fix return of 32bit rt signals to active transactions" has been added to the 3.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    powerpc/tm: Fix return of 32bit rt signals to active transactions

to the 3.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     powerpc-tm-fix-return-of-32bit-rt-signals-to-active-transactions.patch
and it can be found in the queue-3.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.


>From 55e4341850ac56e63a3eefe9583a9000042164fa Mon Sep 17 00:00:00 2001
From: Michael Neuling <mikey@xxxxxxxxxxx>
Date: Sun, 9 Jun 2013 21:23:18 +1000
Subject: powerpc/tm: Fix return of 32bit rt signals to active transactions

From: Michael Neuling <mikey@xxxxxxxxxxx>

commit 55e4341850ac56e63a3eefe9583a9000042164fa upstream.

Currently we only restore signals which are transactionally suspended but it's
possible that the transaction can be restored even when it's active.  Most
likely this will result in a transactional rollback by the hardware as the
transaction will have been doomed by an earlier treclaim.

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
assumptions based on having software rollback.

This changes the signal return code to always restore both contexts on 32 bit
rt signal return.

Signed-off-by: Michael Neuling <mikey@xxxxxxxxxxx>
Signed-off-by: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

---
 arch/powerpc/kernel/signal_32.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/arch/powerpc/kernel/signal_32.c
+++ b/arch/powerpc/kernel/signal_32.c
@@ -1245,7 +1245,7 @@ long sys_rt_sigreturn(int r3, int r4, in
 		if (__get_user(msr_hi, &mcp->mc_gregs[PT_MSR]))
 			goto bad;
 
-		if (MSR_TM_SUSPENDED(msr_hi<<32)) {
+		if (MSR_TM_ACTIVE(msr_hi<<32)) {
 			/* We only recheckpoint on return if we're
 			 * transaction.
 			 */


Patches currently in stable-queue which might be from mikey@xxxxxxxxxxx are

queue-3.10/powerpc-tm-fix-writing-top-half-of-msr-on-32-bit-signals.patch
queue-3.10/powerpc-tm-fix-return-of-active-64bit-signals.patch
queue-3.10/powerpc-tm-fix-return-of-32bit-rt-signals-to-active-transactions.patch
queue-3.10/powerpc-tm-fix-restoration-of-msr-on-32bit-signal-return.patch
queue-3.10/powerpc-hw_brk-fix-clearing-of-extraneous-irq.patch
queue-3.10/powerpc-hw_brk-fix-off-by-one-error-when-validating-dawr-region-end.patch
queue-3.10/powerpc-hw_brk-fix-setting-of-length-for-exact-mode-breakpoints.patch
queue-3.10/powerpc-tm-fix-32-bit-non-rt-signals.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]