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>
This commit is contained in:
@@ -115,13 +115,8 @@ static inline int user_space_fault(unsigned long trans_exc_code)
|
||||
if (trans_exc_code == 2)
|
||||
/* Access via secondary space, set_fs setting decides */
|
||||
return current->thread.mm_segment.ar4;
|
||||
if (s390_user_mode == HOME_SPACE_MODE)
|
||||
/* User space if the access has been done via home space. */
|
||||
return trans_exc_code == 3;
|
||||
/*
|
||||
* If the user space is not the home space the kernel runs in home
|
||||
* space. Access via secondary space has already been covered,
|
||||
* access via primary space or access register is from user space
|
||||
* Access via primary space or access register is from user space
|
||||
* and access via home space is from the kernel.
|
||||
*/
|
||||
return trans_exc_code != 3;
|
||||
@@ -471,7 +466,7 @@ int __handle_fault(unsigned long uaddr, unsigned long pgm_int_code, int write)
|
||||
int access, fault;
|
||||
|
||||
/* Emulate a uaccess fault from kernel mode. */
|
||||
regs.psw.mask = psw_kernel_bits | PSW_MASK_DAT | PSW_MASK_MCHECK;
|
||||
regs.psw.mask = PSW_KERNEL_BITS | PSW_MASK_DAT | PSW_MASK_MCHECK;
|
||||
if (!irqs_disabled())
|
||||
regs.psw.mask |= PSW_MASK_IO | PSW_MASK_EXT;
|
||||
regs.psw.addr = (unsigned long) __builtin_return_address(0);
|
||||
|
@@ -1157,10 +1157,6 @@ int s390_enable_sie(void)
|
||||
struct mm_struct *mm = tsk->mm;
|
||||
struct mmu_gather tlb;
|
||||
|
||||
/* Do we have switched amode? If no, we cannot do sie */
|
||||
if (s390_user_mode == HOME_SPACE_MODE)
|
||||
return -EINVAL;
|
||||
|
||||
/* Do we have pgstes? if yes, we are done */
|
||||
if (mm_has_pgste(tsk->mm))
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user