diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2013-10-16 08:17:29 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2013-10-24 11:17:12 -0400 |
commit | f26946d7ecad0afdd85e6ae56663d0fe26676b34 (patch) | |
tree | ff4bb03205420d7600d9e2b35b2c5d2e38e716a7 | |
parent | 5ebf250dabbae83ad875f0dda5a108503cf78f3b (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.h | 4 | ||||
-rw-r--r-- | arch/s390/kernel/compat_linux.c | 4 | ||||
-rw-r--r-- | arch/s390/kernel/compat_signal.c | 2 | ||||
-rw-r--r-- | arch/s390/kernel/ptrace.c | 4 |
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 | ||
39 | extern 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 | ||
61 | u32 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) | |