Message ID | 20250219081119.203295-1-wdhh66@163.com |
---|---|
State | New |
Headers | show |
Series | scsi: fix missing lock protection | expand |
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c index 087fcbfc9aaa..9a90e6ba5603 100644 --- a/drivers/scsi/scsi_scan.c +++ b/drivers/scsi/scsi_scan.c @@ -151,8 +151,12 @@ int scsi_complete_async_scans(void) struct async_scan_data *data; do { - if (list_empty(&scanning_hosts)) + spin_lock(&async_scan_lock); + if (list_empty(&scanning_hosts)) { + spin_unlock(&async_scan_lock); return 0; + } + spin_unlock(&async_scan_lock); /* If we can't get memory immediately, that's OK. Just * sleep a little. Even if we never get memory, the async * scans will finish eventually.
async_scan_lock is designed to protect the scanning_hosts list, but there is no protection here. Signed-off-by: Chaohai Chen <wdhh66@163.com> --- drivers/scsi/scsi_scan.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)