Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 's390-5.2-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux

Pull s390 fixes from Heiko Carstens:

- fix stack unwinder: the stack unwinder rework has on off-by-one bug
which prevents following stack backchains over more than one context
(e.g. irq -> process).

- fix address space detection in exception handler: if user space
switches to access register mode, which is not supported anymore, the
exception handler may resolve to the wrong address space.

* tag 's390-5.2-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
s390/unwind: correct stack switching during unwind
s390/mm: fix address space detection in exception handling

+5 -2
+1 -1
arch/s390/include/asm/stacktrace.h
··· 30 30 return false; 31 31 if (addr + len < addr) 32 32 return false; 33 - return addr >= info->begin && addr + len < info->end; 33 + return addr >= info->begin && addr + len <= info->end; 34 34 } 35 35 36 36 static inline unsigned long get_stack_pointer(struct task_struct *task,
+4 -1
arch/s390/mm/fault.c
··· 83 83 84 84 /* 85 85 * Find out which address space caused the exception. 86 - * Access register mode is impossible, ignore space == 3. 87 86 */ 88 87 static enum fault_type get_fault_type(struct pt_regs *regs) 89 88 { ··· 106 107 return KERNEL_FAULT; 107 108 } 108 109 return VDSO_FAULT; 110 + } 111 + if (trans_exc_code == 1) { 112 + /* access register mode, not used in the kernel */ 113 + return USER_FAULT; 109 114 } 110 115 /* home space exception -> access via kernel ASCE */ 111 116 return KERNEL_FAULT;