summaryrefslogtreecommitdiff
path: root/drivers/ufs/host/ufs-mediatek.c
diff options
context:
space:
mode:
authorBart Van Assche <bvanassche@acm.org>2022-11-17 10:36:26 -0800
committerMartin K. Petersen <martin.petersen@oracle.com>2022-11-26 00:35:16 +0000
commit50759b881e1d6879e7cef15c74bdea2e937338c9 (patch)
tree66040a589fa15b68eb3f49178b23bca419e4a0e1 /drivers/ufs/host/ufs-mediatek.c
parenta500c4cc06cd2830c692b571dd0a1c3585f23150 (diff)
downloadlinux-next-50759b881e1d6879e7cef15c74bdea2e937338c9.tar.gz
scsi: device_handler: alua: Call scsi_device_put() from non-atomic context
Since commit f93ed747e2c7 ("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 <mwilck@suse.com> Cc: Hannes Reinecke <hare@suse.de> Cc: Sachin Sant <sachinp@linux.ibm.com> Cc: Benjamin Block <bblock@linux.ibm.com> Suggested-by: Martin Wilck <mwilck@suse.com> Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Bart Van Assche <bvanassche@acm.org> Link: https://lore.kernel.org/r/20221117183626.2656196-3-bvanassche@acm.org Tested-by: Sachin Sant <sachinp@linux.ibm.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/ufs/host/ufs-mediatek.c')
0 files changed, 0 insertions, 0 deletions