From 2ba7ea7cb0b7bcd03906834235cfb4a73b6ec38a Mon Sep 17 00:00:00 2001 From: Harald Freudenberger Date: Thu, 9 Jul 2026 09:25:00 +0200 Subject: [PATCH] s390/ap: Use mutex_lock_killable() in ap_bus_force_rescan() A deep dive into the AP bus code and zcrypt device driver about the usage of mutex locking showed that there is one questionable call in ap_bus.c in function ap_bus_force_rescan(). This function may be called in kernel and process context. In both contexts only one info is important: was there a AP bus scan running and did it result in some updates on the AP devices. So only true/false is returned but no info like -EINTR. But still the mutex lock call should be interruptible to be able to kill a user space program blocked forever on this. So this patch replaces mutex_lock_interruptible() with mutex_lock_killable() to be able to handle SIGKILL especially in user space process context. Suggested-by: Heiko Carstens Signed-off-by: Harald Freudenberger Reviewed-by: Finn Callies Signed-off-by: Vasily Gorbik --- drivers/s390/crypto/ap_bus.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/s390/crypto/ap_bus.c b/drivers/s390/crypto/ap_bus.c index 2d4e00a1e48c..d82df5b4e2db 100644 --- a/drivers/s390/crypto/ap_bus.c +++ b/drivers/s390/crypto/ap_bus.c @@ -1173,8 +1173,8 @@ bool ap_bus_force_rescan(void) * for the lock which means the other task has finished and * stored the result in ap_scan_bus_result. */ - if (mutex_lock_interruptible(&ap_scan_bus_mutex)) { - /* some error occurred, ignore and go out */ + if (mutex_lock_killable(&ap_scan_bus_mutex)) { + /* fatal signal received, go out */ goto out; } rc = ap_scan_bus_result;