mirror-linux/drivers/ufs/core
Bart Van Assche d2875b812b scsi: ufs: core: Fix a deadlock in the frequency scaling code
Commit 08b12cda6c ("scsi: ufs: core: Switch to scsi_get_internal_cmd()")
accidentally introduced a deadlock in the frequency scaling code.
ufshcd_clock_scaling_unprepare() may submit a device management command
while SCSI command processing is blocked. The deadlock was introduced by
using the SCSI core for submitting device management commands
(scsi_get_internal_cmd() + blk_execute_rq()). Fix this deadlock by calling
blk_mq_unquiesce_tagset() before any device management commands are
submitted by ufshcd_clock_scaling_unprepare().

Fixes: 08b12cda6c ("scsi: ufs: core: Switch to scsi_get_internal_cmd()")
Reported-by: Manivannan Sadhasivam <mani@kernel.org>
Reported-by: Roger Shimizu <rosh@debian.org>
Closes: https://lore.kernel.org/linux-scsi/ehorjaflathzab5oekx2nae2zss5vi2r36yqkqsfjb2fgsifz2@yk3us5g3igow/
Tested-by: Roger Shimizu <rosh@debian.org>
Cc: Nitin Rawat <nitin.rawat@oss.qualcomm.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Peter Wang <peter.wang@mediatek.com>
Reviewed-by: Nitin Rawat <nitin.rawat@oss.qualcomm.com>
Tested-by: Alexey Klimov <alexey.klimov@linaro.org> # RB5 board
Link: https://patch.msgid.link/20251204181548.1006696-1-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2025-12-08 21:58:28 -05:00
..
Kconfig
Makefile scsi: ufs: core: Add OP-TEE based RPMB driver for UFS devices 2025-11-10 12:49:43 -05:00
ufs-debugfs.c
ufs-debugfs.h
ufs-fault-injection.c fault-inject: improve build for CONFIG_FAULT_INJECTION=n 2024-09-01 20:43:33 -07:00
ufs-fault-injection.h
ufs-hwmon.c
ufs-mcq.c scsi: ufs: core: Switch to scsi_get_internal_cmd() 2025-11-12 17:02:34 -05:00
ufs-rpmb.c scsi: ufs: core: Add OP-TEE based RPMB driver for UFS devices 2025-11-10 12:49:43 -05:00
ufs-sysfs.c Merge branch 6.18/scsi-fixes into 6.19/scsi-staging 2025-11-19 22:59:25 -05:00
ufs-sysfs.h scsi: ufs: core: Revert "Make HID attributes visible" 2025-10-29 23:12:33 -04:00
ufs_bsg.c scsi: ufs: core: Remove an unnecessary NULL pointer check 2025-11-12 20:58:28 -05:00
ufs_bsg.h
ufs_trace.h scsi: ufs: core: Remove UFS_DEV_COMP 2025-10-23 22:18:12 -04:00
ufs_trace_types.h scsi: ufs: core: Remove UFS_DEV_COMP 2025-10-23 22:18:12 -04:00
ufshcd-crypto.c blk-crypto: add basic hardware-wrapped key support 2025-02-10 09:54:19 -07:00
ufshcd-crypto.h scsi: ufs: core: Optimize the hot path 2025-11-12 17:02:34 -05:00
ufshcd-priv.h Merge patch series "Add OP-TEE based RPMB driver for UFS devices" 2025-11-20 10:26:13 -05:00
ufshcd.c scsi: ufs: core: Fix a deadlock in the frequency scaling code 2025-12-08 21:58:28 -05:00