linux-stable/drivers/scsi/ufs
Can Guo 777c8c9f11 scsi: ufs: Fix ufshcd_hold() caused scheduling while atomic
commit c63d6099a7 upstream.

The async version of ufshcd_hold(async == true), which is only called in
queuecommand path as for now, is expected to work in atomic context, thus
it should not sleep or schedule out. When it runs into the condition that
clocks are ON but link is still in hibern8 state, it should bail out
without flushing the clock ungate work.

Fixes: f2a785ac23 ("scsi: ufshcd: Fix race between clk scaling and ungate work")
Link: https://lore.kernel.org/r/1581392451-28743-6-git-send-email-cang@codeaurora.org
Reviewed-by: Hongwu Su <hongwus@codeaurora.org>
Reviewed-by: Asutosh Das <asutoshd@codeaurora.org>
Reviewed-by: Bean Huo <beanhuo@micron.com>
Reviewed-by: Stanley Chu <stanley.chu@mediatek.com>
Signed-off-by: Can Guo <cang@codeaurora.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-04-21 09:04:51 +02:00
..
cdns-pltfrm.c scsi: ufs: Disable autohibern8 feature in Cadence UFS 2019-12-21 11:05:03 +01:00
Kconfig SCSI misc on 20190507 2019-05-08 10:12:46 -07:00
Makefile
tc-dwc-g210-pci.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
tc-dwc-g210-pltfrm.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
tc-dwc-g210.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
tc-dwc-g210.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ufs-hisi.c scsi: ufs-hisi: use devm_platform_ioremap_resource() to simplify code 2019-09-07 16:43:05 -04:00
ufs-hisi.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 471 2019-06-19 17:09:11 +02:00
ufs-mediatek.c scsi: ufs-mediatek: add apply_dev_quirks variant operation 2020-02-24 08:36:50 +01:00
ufs-mediatek.h
ufs-qcom.c scsi: ufs: pass device information to apply_dev_quirks 2020-02-24 08:36:50 +01:00
ufs-qcom.h scsi: ufs-qcom: Implement device_reset vops 2019-09-07 16:36:03 -04:00
ufs-sysfs.c scsi: ufs: Fix up auto hibern8 enablement 2020-01-04 19:18:17 +01:00
ufs-sysfs.h
ufs.h scsi: ufs: revamp string descriptor reading 2019-08-07 21:40:37 -04:00
ufs_bsg.c scsi: ufs: Give an unique ID to each ufs-bsg 2020-01-17 19:48:45 +01:00
ufs_bsg.h
ufs_quirks.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
ufshcd-dwc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ufshcd-dwc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ufshcd-pci.c scsi: ufshdc-pci: Add Intel PCI IDs for EHL 2019-06-26 22:42:28 -04:00
ufshcd-pltfrm.c scsi: ufshcd: use devm_platform_ioremap_resource() to simplify code 2019-09-07 16:42:07 -04:00
ufshcd-pltfrm.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
ufshcd.c scsi: ufs: Fix ufshcd_hold() caused scheduling while atomic 2020-04-21 09:04:51 +02:00
ufshcd.h scsi: ufs: fix Auto-Hibern8 error detection 2020-04-17 10:50:19 +02:00
ufshci-dwc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ufshci.h scsi: ufs: Add error-handling of Auto-Hibernate 2019-06-18 19:46:23 -04:00
unipro.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00