mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-30 08:02:30 +00:00
5cb37a2635
hba->outstanding_tasks, which is read under host_lock spinlock, tells the
interrupt handler what task management tags are in use by the driver. The
doorbell register bits indicate which tags are in use by the hardware. A
doorbell bit that is 0 is because the bit has yet to be set by the driver,
or because the task is complete. It is only possible to disambiguate the 2
cases, if reading/writing the doorbell register is synchronized with
reading/writing hba->outstanding_tasks.
For that reason, reading REG_UTP_TASK_REQ_DOOR_BELL must be done under
spinlock.
Link: https://lore.kernel.org/r/20211108064815.569494-3-adrian.hunter@intel.com
Fixes:
|
||
---|---|---|
.. | ||
cdns-pltfrm.c | ||
Kconfig | ||
Makefile | ||
tc-dwc-g210-pci.c | ||
tc-dwc-g210-pltfrm.c | ||
tc-dwc-g210.c | ||
tc-dwc-g210.h | ||
ti-j721e-ufs.c | ||
ufs-debugfs.c | ||
ufs-debugfs.h | ||
ufs-exynos.c | ||
ufs-exynos.h | ||
ufs-fault-injection.c | ||
ufs-fault-injection.h | ||
ufs-hisi.c | ||
ufs-hisi.h | ||
ufs-hwmon.c | ||
ufs-mediatek-trace.h | ||
ufs-mediatek.c | ||
ufs-mediatek.h | ||
ufs-qcom-ice.c | ||
ufs-qcom.c | ||
ufs-qcom.h | ||
ufs-sysfs.c | ||
ufs-sysfs.h | ||
ufs.h | ||
ufs_bsg.c | ||
ufs_bsg.h | ||
ufs_quirks.h | ||
ufshcd-crypto.c | ||
ufshcd-crypto.h | ||
ufshcd-dwc.c | ||
ufshcd-dwc.h | ||
ufshcd-pci.c | ||
ufshcd-pltfrm.c | ||
ufshcd-pltfrm.h | ||
ufshcd.c | ||
ufshcd.h | ||
ufshci-dwc.h | ||
ufshci.h | ||
ufshpb.c | ||
ufshpb.h | ||
unipro.h |