]> git.baikalelectronics.ru Git - kernel.git/commit
m68k: Handle arrivals of multiple signals correctly
authorAl Viro <viro@zeniv.linux.org.uk>
Sun, 25 Jul 2021 17:19:00 +0000 (17:19 +0000)
committerGeert Uytterhoeven <geert@linux-m68k.org>
Fri, 24 Sep 2021 11:34:46 +0000 (13:34 +0200)
commita624e75e6e8b79b79cbd0f55ebab3ffcab0f94f4
tree8057f35e466f50b4dd8d3b498d17f160ff808676
parentb50525697f0a96ad1e0fbc97582ea40b516bdcf2
m68k: Handle arrivals of multiple signals correctly

When we have several pending signals, have entered with the kernel
with large exception frame *and* have already built at least one
sigframe, regs->stkadj is going to be non-zero and regs->format/sr/pc
are going to be junk - the real values are in shifted exception stack
frame we'd built when putting together the first sigframe.

If that happens, subsequent sigframes are going to be garbage.
Not hard to fix - just need to find the "adjusted" frame first
and look for format/vector/sr/pc in it.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Tested-by: Michael Schmitz <schmitzmic@gmail.com>
Reviewed-by: Michael Schmitz <schmitzmic@gmail.com>
Tested-by: Finn Thain <fthain@linux-m68k.org>
Link: https://lore.kernel.org/r/YP2dBIAPTaVvHiZ6@zeniv-ca.linux.org.uk
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
arch/m68k/kernel/signal.c