linux/arch/s390
Vasily Gorbik b74e409ea1 s390/entry: avoid setting up backchain in ext|io handlers
Currently when interrupt arrives to cpu while in kernel context
INT_HANDLER macro (used for ext_int_handler and io_int_handler)
allocates new stack frame and pt_regs on the kernel stack and
sets up the backchain to jump over the pt_regs to the frame which has
been interrupted. This is not ideal to two reasons:

1. This hides the fact that kernel stack contains interrupt frame in it
   and hence breaks arch_stack_walk_reliable(), which needs to know that to
   guarantee "reliability" and checks that there are no pt_regs on the way.

2. It breaks the backchain unwinder logic, which assumes that the next
   stack frame after an interrupt frame is reliable, while it is not.
   In some cases (when r14 contains garbage) this leads to early unwinding
   termination with an error, instead of marking frame as unreliable
   and continuing.

To address that, only set backchain to 0.

Fixes: 56e62a7370 ("s390: convert to generic entry")
Reviewed-by: Sven Schnelle <svens@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
2021-04-12 12:44:30 +02:00
..
appldata s390/appldata: use struct_size() helper 2020-06-29 16:32:34 +02:00
boot s390: uv: Fix sysfs max number of VCPUs reporting 2021-01-27 13:00:04 +01:00
configs s390: remove IBM_PARTITION and CONFIGFS_FS from zfcpdump defconfig 2021-03-08 10:46:30 +01:00
crypto Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2021-02-21 17:23:56 -08:00
hypfs s390/hypfs: use store_tod_clock_ext() 2021-02-13 17:17:55 +01:00
include s390/unwind: add machine check handler stack 2021-04-05 11:30:07 +02:00
kernel s390/entry: avoid setting up backchain in ext|io handlers 2021-04-12 12:44:30 +02:00
kvm s390/time,idle: get rid of unsigned long long 2021-03-08 10:46:27 +01:00
lib s390: convert to generic entry 2021-01-19 12:29:26 +01:00
mm s390 updates for the 5.12 merge window #2 2021-02-26 14:12:32 -08:00
net bpf: Rename BPF_XADD and prepare to encode other atomics in .imm 2021-01-14 18:34:29 -08:00
pci s390/pci: fix leak of PCI device structure 2021-03-15 19:10:56 +01:00
purgatory - Add support for the hugetlb_cma command line option to allocate gigantic 2020-12-14 16:22:26 -08:00
tools s390/opcodes: rename selhhhr to selfhr 2021-02-24 00:31:22 +01:00
Kbuild s390/numa: move code to arch/s390/kernel 2020-08-11 18:16:55 +02:00
Kconfig Rework of the X86 irq stack handling: 2021-02-24 16:32:23 -08:00
Kconfig.debug s390: convert to generic entry 2021-01-19 12:29:26 +01:00
Makefile arch: s390: Remove CONFIG_OPROFILE support 2021-01-29 10:05:51 +05:30