diff options
author | Ingo Molnar <mingo@kernel.org> | 2019-06-17 12:06:34 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2019-06-17 12:06:34 +0200 |
commit | 410df0c5748f6c5a53847d2acb163dc7cd8b6c51 (patch) | |
tree | 0c0f547f90a73ec6d30851f93720e0eb24f353eb /arch/s390 | |
parent | fff9b6c7d26943a8eb32b58364b7ec6b9369746a (diff) | |
parent | 9e0babf2c06c73cda2c0cd37a1653d823adb40ec (diff) |
Merge tag 'v5.2-rc5' into locking/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/s390')
-rw-r--r-- | arch/s390/include/asm/stacktrace.h | 2 | ||||
-rw-r--r-- | arch/s390/mm/fault.c | 5 |
2 files changed, 5 insertions, 2 deletions
diff --git a/arch/s390/include/asm/stacktrace.h b/arch/s390/include/asm/stacktrace.h index 49634bfbecdd..0ae4bbf7779c 100644 --- a/arch/s390/include/asm/stacktrace.h +++ b/arch/s390/include/asm/stacktrace.h @@ -30,7 +30,7 @@ static inline bool on_stack(struct stack_info *info, return false; if (addr + len < addr) return false; - return addr >= info->begin && addr + len < info->end; + return addr >= info->begin && addr + len <= info->end; } static inline unsigned long get_stack_pointer(struct task_struct *task, diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c index 91ce03fd0c84..df75d574246d 100644 --- a/arch/s390/mm/fault.c +++ b/arch/s390/mm/fault.c @@ -83,7 +83,6 @@ static inline int notify_page_fault(struct pt_regs *regs) /* * Find out which address space caused the exception. - * Access register mode is impossible, ignore space == 3. */ static enum fault_type get_fault_type(struct pt_regs *regs) { @@ -108,6 +107,10 @@ static enum fault_type get_fault_type(struct pt_regs *regs) } return VDSO_FAULT; } + if (trans_exc_code == 1) { + /* access register mode, not used in the kernel */ + return USER_FAULT; + } /* home space exception -> access via kernel ASCE */ return KERNEL_FAULT; } |