arm64: Fix compat_sys_sigsuspend

The original (bad) version changed the signal mask in the "current"
process, and then passed unitialized (and likely zeroed, because of
previous state -- but it usually contains some unknown value) to the
function sigsuspend (kernel/signal.c), which in turn, besides the other
work, sets the current->blocked. Ah, "current" is pointer to "current
process" structure in the kernel.

So, the good value of mask, passed from mksh, was effectively
overwritten by some random value. If it is zero, all signals were
blocked and pipes could not work.

Author: Dmitry Pervushin <dmitry.pervushin@linaro.org>
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
1 file changed