diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2013-09-24 03:14:56 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2013-10-24 11:16:57 -0400 |
commit | e258d719ff28ecc7a048eb8f78380e68c4b3a3f0 (patch) | |
tree | 1c7f496b97cef1111b230371940e603a2ca401a4 /arch/s390/kernel/compat_signal.c | |
parent | 7d7c7b24e416afb2637be8447e03ca4457c100fd (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.c | 8 |
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 | ||