Commit eccc02b
scsi: smartpqi: Fix device resources accessed after device removal
[ Upstream commit b518e86 ]
Correct possible race conditions during device removal.
Previously, a scheduled work item to reset a LUN could still execute
after the device was removed, leading to use-after-free and other
resource access issues.
This race condition occurs because the abort handler may schedule a LUN
reset concurrently with device removal via sdev_destroy(), leading to
use-after-free and improper access to freed resources.
- Check in the device reset handler if the device is still present in
the controller's SCSI device list before running; if not, the reset
is skipped.
- Cancel any pending TMF work that has not started in sdev_destroy().
- Ensure device freeing in sdev_destroy() is done while holding the
LUN reset mutex to avoid races with ongoing resets.
Fixes: 2d80f40 ("scsi: smartpqi: Update deleting a LUN via sysfs")
Reviewed-by: Scott Teel <scott.teel@microchip.com>
Reviewed-by: Scott Benesh <scott.benesh@microchip.com>
Signed-off-by: Mike McGowen <mike.mcgowen@microchip.com>
Signed-off-by: Don Brace <don.brace@microchip.com>
Link: https://patch.msgid.link/20251106163823.786828-3-don.brace@microchip.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>1 parent 8616943 commit eccc02b
1 file changed
+19
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6395 | 6395 | | |
6396 | 6396 | | |
6397 | 6397 | | |
| 6398 | + | |
6398 | 6399 | | |
6399 | 6400 | | |
6400 | 6401 | | |
6401 | 6402 | | |
| 6403 | + | |
| 6404 | + | |
| 6405 | + | |
| 6406 | + | |
| 6407 | + | |
| 6408 | + | |
| 6409 | + | |
| 6410 | + | |
| 6411 | + | |
| 6412 | + | |
| 6413 | + | |
6402 | 6414 | | |
6403 | 6415 | | |
6404 | 6416 | | |
| |||
6578 | 6590 | | |
6579 | 6591 | | |
6580 | 6592 | | |
| 6593 | + | |
6581 | 6594 | | |
| 6595 | + | |
6582 | 6596 | | |
6583 | 6597 | | |
6584 | 6598 | | |
| |||
6605 | 6619 | | |
6606 | 6620 | | |
6607 | 6621 | | |
| 6622 | + | |
| 6623 | + | |
| 6624 | + | |
| 6625 | + | |
6608 | 6626 | | |
6609 | 6627 | | |
| 6628 | + | |
6610 | 6629 | | |
6611 | 6630 | | |
6612 | 6631 | | |
| |||
0 commit comments