diff options
| author | Chaohai Chen <wdhh66@163.com> | 2025-02-21 11:07:55 +0800 |
|---|---|---|
| committer | Martin K. Petersen <martin.petersen@oracle.com> | 2025-03-02 21:06:02 -0500 |
| commit | ed3e4842224ff721f48154c1fed6ef97241249e6 (patch) | |
| tree | ac8cd8ce9c9bf8fd07b0b6851600c5a2d5e1dbec /drivers/scsi/scsi_scan.c | |
| parent | ac0fb4a55bde561c46fc7445642a722803176b33 (diff) | |
scsi: core: Fix missing lock protection
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>
Link: https://lore.kernel.org/r/20250221030755.219277-1-wdhh66@163.com
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/scsi_scan.c')
| -rw-r--r-- | drivers/scsi/scsi_scan.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c index 96d7e1a9a7c7..4833b8fe251b 100644 --- a/drivers/scsi/scsi_scan.c +++ b/drivers/scsi/scsi_scan.c @@ -151,8 +151,9 @@ int scsi_complete_async_scans(void) struct async_scan_data *data; do { - if (list_empty(&scanning_hosts)) - return 0; + scoped_guard(spinlock, &async_scan_lock) + if (list_empty(&scanning_hosts)) + return 0; /* 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. |
