s390/tx: allow program interruption filtering in user space
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Tue, 27 Aug 2013 07:56:55 +0000 (09:56 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 28 Aug 2013 07:19:30 +0000 (09:19 +0200)
A user space program using the transactional execution facility
should be allowed to do program interrupt filtering. Do not set the
transactional-execution program-interruption-filtering override (PIFO)
bit in CR0.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/kernel/ptrace.c

index 2bc0803..9556905 100644 (file)
@@ -60,11 +60,11 @@ void update_cr_regs(struct task_struct *task)
 
                __ctl_store(cr, 0, 2);
                cr_new[1] = cr[1];
-               /* Set or clear transaction execution TXC/PIFO bits 8 and 9. */
+               /* Set or clear transaction execution TXC bit 8. */
                if (task->thread.per_flags & PER_FLAG_NO_TE)
-                       cr_new[0] = cr[0] & ~(3UL << 54);
+                       cr_new[0] = cr[0] & ~(1UL << 55);
                else
-                       cr_new[0] = cr[0] | (3UL << 54);
+                       cr_new[0] = cr[0] | (1UL << 55);
                /* Set or clear transaction execution TDC bits 62 and 63. */
                cr_new[2] = cr[2] & ~3UL;
                if (task->thread.per_flags & PER_FLAG_TE_ABORT_RAND) {