Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
scsi: device_handler: alua: Call scsi_device_put() from non-atomic co…
…ntext Since commit f93ed74 ("scsi: core: Release SCSI devices synchronously"), scsi_device_put() might sleep. Avoid calling it from alua_rtpg_queue() with the pg_lock held. The lock only pretects h->pg, anyway. To avoid the pg being freed under us, because of a race with another thread, take a temporary reference. In alua_rtpg_queue(), verify that the pg still belongs to the sdev being passed before actually queueing the RTPG. This patch fixes the following smatch warning: drivers/scsi/device_handler/scsi_dh_alua.c:1013 alua_rtpg_queue() warn: sleeping in atomic context alua_check_vpd() <- disables preempt -> alua_rtpg_queue() -> scsi_device_put() Cc: Martin Wilck <[email protected]> Cc: Hannes Reinecke <[email protected]> Cc: Sachin Sant <[email protected]> Cc: Benjamin Block <[email protected]> Suggested-by: Martin Wilck <[email protected]> Reported-by: Dan Carpenter <[email protected]> Signed-off-by: Bart Van Assche <[email protected]> Link: https://lore.kernel.org/r/[email protected] Tested-by: Sachin Sant <[email protected]> Signed-off-by: Martin K. Petersen <[email protected]>
- Loading branch information