mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-31 14:04:27 -04:00
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 <hca@linux.ibm.com> Signed-off-by: Harald Freudenberger <freude@linux.ibm.com> Reviewed-by: Finn Callies <fcallies@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
This commit is contained in:
committed by
Vasily Gorbik
parent
6e17a45b3c
commit
2ba7ea7cb0
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user