aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2013-10-16 08:17:29 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2013-10-24 11:17:12 -0400
commitf26946d7ecad0afdd85e6ae56663d0fe26676b34 (patch)
treeff4bb03205420d7600d9e2b35b2c5d2e38e716a7
parent5ebf250dabbae83ad875f0dda5a108503cf78f3b (diff)
s390/compat: make psw32_user_bits a constant value again
Make psw32_user_bits a constant value again. This is a leftover of the code which allowed to run the kernel either in primary or home space which got removed with 9a905662 "s390/uaccess: always run the kernel in home space". Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-rw-r--r--arch/s390/include/asm/compat.h4
-rw-r--r--arch/s390/kernel/compat_linux.c4
-rw-r--r--arch/s390/kernel/compat_signal.c2
-rw-r--r--arch/s390/kernel/ptrace.c4
4 files changed, 6 insertions, 8 deletions
diff --git a/arch/s390/include/asm/compat.h b/arch/s390/include/asm/compat.h
index 7604cabf02c0..4bf9da03591e 100644
--- a/arch/s390/include/asm/compat.h
+++ b/arch/s390/include/asm/compat.h
@@ -36,7 +36,9 @@
36#define PSW32_ASC_SECONDARY 0x00008000UL 36#define PSW32_ASC_SECONDARY 0x00008000UL
37#define PSW32_ASC_HOME 0x0000C000UL 37#define PSW32_ASC_HOME 0x0000C000UL
38 38
39extern u32 psw32_user_bits; 39#define PSW32_USER_BITS (PSW32_MASK_DAT | PSW32_MASK_IO | PSW32_MASK_EXT | \
40 PSW32_DEFAULT_KEY | PSW32_MASK_BASE | \
41 PSW32_MASK_MCHECK | PSW32_MASK_PSTATE | PSW32_ASC_HOME)
40 42
41#define COMPAT_USER_HZ 100 43#define COMPAT_USER_HZ 100
42#define COMPAT_UTS_MACHINE "s390\0\0\0\0" 44#define COMPAT_UTS_MACHINE "s390\0\0\0\0"
diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c
index 1f1b8c70ab97..e030d2bdec1b 100644
--- a/arch/s390/kernel/compat_linux.c
+++ b/arch/s390/kernel/compat_linux.c
@@ -58,10 +58,6 @@
58 58
59#include "compat_linux.h" 59#include "compat_linux.h"
60 60
61u32 psw32_user_bits = PSW32_MASK_DAT | PSW32_MASK_IO | PSW32_MASK_EXT |
62 PSW32_DEFAULT_KEY | PSW32_MASK_BASE | PSW32_MASK_MCHECK |
63 PSW32_MASK_PSTATE | PSW32_ASC_HOME;
64
65/* For this source file, we want overflow handling. */ 61/* For this source file, we want overflow handling. */
66 62
67#undef high2lowuid 63#undef high2lowuid
diff --git a/arch/s390/kernel/compat_signal.c b/arch/s390/kernel/compat_signal.c
index 8764c88a84fe..5a3ab5c191fd 100644
--- a/arch/s390/kernel/compat_signal.c
+++ b/arch/s390/kernel/compat_signal.c
@@ -158,7 +158,7 @@ static int save_sigregs32(struct pt_regs *regs, _sigregs32 __user *sregs)
158 158
159 user_sregs.regs.psw.mask = (__u32)(regs->psw.mask >> 32); 159 user_sregs.regs.psw.mask = (__u32)(regs->psw.mask >> 32);
160 user_sregs.regs.psw.mask &= PSW32_MASK_USER | PSW32_MASK_RI; 160 user_sregs.regs.psw.mask &= PSW32_MASK_USER | PSW32_MASK_RI;
161 user_sregs.regs.psw.mask |= psw32_user_bits; 161 user_sregs.regs.psw.mask |= PSW32_USER_BITS;
162 user_sregs.regs.psw.addr = (__u32) regs->psw.addr | 162 user_sregs.regs.psw.addr = (__u32) regs->psw.addr |
163 (__u32)(regs->psw.mask & PSW_MASK_BA); 163 (__u32)(regs->psw.mask & PSW_MASK_BA);
164 for (i = 0; i < NUM_GPRS; i++) 164 for (i = 0; i < NUM_GPRS; i++)
diff --git a/arch/s390/kernel/ptrace.c b/arch/s390/kernel/ptrace.c
index 1d1f9c30c5fa..e65c91c591e8 100644
--- a/arch/s390/kernel/ptrace.c
+++ b/arch/s390/kernel/ptrace.c
@@ -563,7 +563,7 @@ static u32 __peek_user_compat(struct task_struct *child, addr_t addr)
563 /* Fake a 31 bit psw mask. */ 563 /* Fake a 31 bit psw mask. */
564 tmp = (__u32)(regs->psw.mask >> 32); 564 tmp = (__u32)(regs->psw.mask >> 32);
565 tmp &= PSW32_MASK_USER | PSW32_MASK_RI; 565 tmp &= PSW32_MASK_USER | PSW32_MASK_RI;
566 tmp |= psw32_user_bits; 566 tmp |= PSW32_USER_BITS;
567 } else if (addr == (addr_t) &dummy32->regs.psw.addr) { 567 } else if (addr == (addr_t) &dummy32->regs.psw.addr) {
568 /* Fake a 31 bit psw address. */ 568 /* Fake a 31 bit psw address. */
569 tmp = (__u32) regs->psw.addr | 569 tmp = (__u32) regs->psw.addr |
@@ -664,7 +664,7 @@ static int __poke_user_compat(struct task_struct *child,
664 664
665 mask |= is_ri_task(child) ? PSW32_MASK_RI : 0; 665 mask |= is_ri_task(child) ? PSW32_MASK_RI : 0;
666 /* Build a 64 bit psw mask from 31 bit mask. */ 666 /* Build a 64 bit psw mask from 31 bit mask. */
667 if ((tmp & ~mask) != psw32_user_bits) 667 if ((tmp & ~mask) != PSW32_USER_BITS)
668 /* Invalid psw mask. */ 668 /* Invalid psw mask. */
669 return -EINVAL; 669 return -EINVAL;
670 regs->psw.mask = (regs->psw.mask & ~PSW_MASK_USER) | 670 regs->psw.mask = (regs->psw.mask & ~PSW_MASK_USER) |