diff options
| author | Andrew Gaylard <ag@ffroot.co.za> | 2026-08-20 14:58:35 +0200 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2026-08-31 18:50:16 +0100 |
| commit | 7fe2098d612b35fc0aaa7a550b0adca326fedcee (patch) | |
| tree | a633d1f23a2ce098b930fdb97b44749c85309011 /scripts | |
| parent | 152867998da9f331d6235d76aae1c7e1650708a9 (diff) | |
| download | linux-next-7fe2098d612b35fc0aaa7a550b0adca326fedcee.tar.gz linux-next-7fe2098d612b35fc0aaa7a550b0adca326fedcee.zip | |
spi: sunplus: handle signal interruption in transfer wait
wait_for_completion_interruptible_timeout() returns -ERESTARTSYS when
interrupted by a signal, 0 on timeout, and positive on success. The
previous check was:
if (!wait_for_completion_interruptible_timeout(...))
SIGKILL caused the interrupted path to fall through as if the transfer
succeeded. The loop then re-entered mutex_lock() on the next
iteration, which is TASK_UNINTERRUPTIBLE. The process could not be
killed while blocked there.
Check ret <= 0 and return -EINTR for the interrupted case so the process
can exit promptly on SIGKILL.
Signed-off-by: Andrew Gaylard <ag@ffroot.co.za>
Link: https://patch.msgid.link/20260820125835.1584270-1-ag@ffroot.co.za
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'scripts')
0 files changed, 0 insertions, 0 deletions
