kernel-aes67/drivers/nvme/host
Sean Anderson d5887dc6b6 nvme-pci: Add quirk for broken MSIs
Sandisk SN530 NVMe drives have broken MSIs. On systems without MSI-X
support, all commands time out resulting in the following message:

nvme nvme0: I/O tag 12 (100c) QID 0 timeout, completion polled

These timeouts cause the boot to take an excessively-long time (over 20
minutes) while the initial command queue is flushed.

Address this by adding a quirk for drives with buggy MSIs. The lspci
output for this device (recorded on a system with MSI-X support) is:

02:00.0 Non-Volatile memory controller: Sandisk Corp Device 5008 (rev 01) (prog-if 02 [NVM Express])
	Subsystem: Sandisk Corp Device 5008
	Flags: bus master, fast devsel, latency 0, IRQ 16, NUMA node 0
	Memory at f7e00000 (64-bit, non-prefetchable) [size=16K]
	Memory at f7e04000 (64-bit, non-prefetchable) [size=256]
	Capabilities: [80] Power Management version 3
	Capabilities: [90] MSI: Enable- Count=1/32 Maskable- 64bit+
	Capabilities: [b0] MSI-X: Enable+ Count=17 Masked-
	Capabilities: [c0] Express Endpoint, MSI 00
	Capabilities: [100] Advanced Error Reporting
	Capabilities: [150] Device Serial Number 00-00-00-00-00-00-00-00
	Capabilities: [1b8] Latency Tolerance Reporting
	Capabilities: [300] Secondary PCI Express
	Capabilities: [900] L1 PM Substates
	Kernel driver in use: nvme
	Kernel modules: nvme

Cc: <stable@vger.kernel.org>
Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2024-05-07 07:55:14 -07:00
..
Kconfig
Makefile
apple.c
auth.c
constants.c
core.c nvme: cancel pending I/O if nvme controller is in terminal state 2024-05-01 02:58:42 -07:00
fabrics.c
fabrics.h nvme: fix reconnection fail due to reserved tag allocation 2024-03-14 11:32:39 -07:00
fault_inject.c
fc.c nvme-fc: rename free_ctrl callback to match name pattern 2024-04-04 08:47:56 -07:00
fc.h
hwmon.c
ioctl.c
multipath.c nvme: find numa distance only if controller has valid numa id 2024-05-01 02:58:42 -07:00
nvme.h nvme-pci: Add quirk for broken MSIs 2024-05-07 07:55:14 -07:00
pci.c nvme-pci: Add quirk for broken MSIs 2024-05-07 07:55:14 -07:00
pr.c nvme: use nvme_disk_is_ns_head helper 2024-03-14 11:34:55 -07:00
rdma.c
sysfs.c nvme updates for Linux 6.9 2024-03-21 13:23:07 -06:00
tcp.c nvme-tcp: strict pdu pacing to avoid send stalls on TLS 2024-05-01 02:58:43 -07:00
trace.c nvme: parse format command's lbafu when tracing 2024-03-14 11:38:28 -07:00
trace.h
zns.c nvme: split nvme_update_zone_info 2024-04-02 08:21:33 -07:00