aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/compat_signal.c
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2013-09-24 03:14:56 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2013-10-24 11:16:57 -0400
commite258d719ff28ecc7a048eb8f78380e68c4b3a3f0 (patch)
tree1c7f496b97cef1111b230371940e603a2ca401a4 /arch/s390/kernel/compat_signal.c
parent7d7c7b24e416afb2637be8447e03ca4457c100fd (diff)
s390/uaccess: always run the kernel in home space
Simplify the uaccess code by removing the user_mode=home option. The kernel will now always run in the home space mode. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/compat_signal.c')
-rw-r--r--arch/s390/kernel/compat_signal.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/s390/kernel/compat_signal.c b/arch/s390/kernel/compat_signal.c
index adaa9e9478d8..ee820079c06d 100644
--- a/arch/s390/kernel/compat_signal.c
+++ b/arch/s390/kernel/compat_signal.c
@@ -188,8 +188,8 @@ static int restore_sigregs32(struct pt_regs *regs,_sigregs32 __user *sregs)
188 (__u64)(regs32.psw.mask & PSW32_MASK_USER) << 32 | 188 (__u64)(regs32.psw.mask & PSW32_MASK_USER) << 32 |
189 (__u64)(regs32.psw.addr & PSW32_ADDR_AMODE); 189 (__u64)(regs32.psw.addr & PSW32_ADDR_AMODE);
190 /* Check for invalid user address space control. */ 190 /* Check for invalid user address space control. */
191 if ((regs->psw.mask & PSW_MASK_ASC) >= (psw_kernel_bits & PSW_MASK_ASC)) 191 if ((regs->psw.mask & PSW_MASK_ASC) == PSW_ASC_HOME)
192 regs->psw.mask = (psw_user_bits & PSW_MASK_ASC) | 192 regs->psw.mask = PSW_ASC_PRIMARY |
193 (regs->psw.mask & ~PSW_MASK_ASC); 193 (regs->psw.mask & ~PSW_MASK_ASC);
194 regs->psw.addr = (__u64)(regs32.psw.addr & PSW32_ADDR_INSN); 194 regs->psw.addr = (__u64)(regs32.psw.addr & PSW32_ADDR_INSN);
195 for (i = 0; i < NUM_GPRS; i++) 195 for (i = 0; i < NUM_GPRS; i++)
@@ -348,7 +348,7 @@ static int setup_frame32(int sig, struct k_sigaction *ka,
348 regs->gprs[15] = (__force __u64) frame; 348 regs->gprs[15] = (__force __u64) frame;
349 /* Force 31 bit amode and default user address space control. */ 349 /* Force 31 bit amode and default user address space control. */
350 regs->psw.mask = PSW_MASK_BA | 350 regs->psw.mask = PSW_MASK_BA |
351 (psw_user_bits & PSW_MASK_ASC) | 351 (PSW_USER_BITS & PSW_MASK_ASC) |
352 (regs->psw.mask & ~PSW_MASK_ASC); 352 (regs->psw.mask & ~PSW_MASK_ASC);
353 regs->psw.addr = (__force __u64) ka->sa.sa_handler; 353 regs->psw.addr = (__force __u64) ka->sa.sa_handler;
354 354
@@ -415,7 +415,7 @@ static int setup_rt_frame32(int sig, struct k_sigaction *ka, siginfo_t *info,
415 regs->gprs[15] = (__force __u64) frame; 415 regs->gprs[15] = (__force __u64) frame;
416 /* Force 31 bit amode and default user address space control. */ 416 /* Force 31 bit amode and default user address space control. */
417 regs->psw.mask = PSW_MASK_BA | 417 regs->psw.mask = PSW_MASK_BA |
418 (psw_user_bits & PSW_MASK_ASC) | 418 (PSW_USER_BITS & PSW_MASK_ASC) |
419 (regs->psw.mask & ~PSW_MASK_ASC); 419 (regs->psw.mask & ~PSW_MASK_ASC);
420 regs->psw.addr = (__u64 __force) ka->sa.sa_handler; 420 regs->psw.addr = (__u64 __force) ka->sa.sa_handler;
421 421