linux/drivers/nvme/host
Keith Busch f07c0bc27b nvme: avoid bogus CRTO values
commit 6cc834ba62 upstream.

Some devices are reporting controller ready mode support, but return 0
for CRTO. These devices require a much higher time to ready than that,
so they are failing to initialize after the driver starter preferring
that value over CAP.TO.

The spec requires that CAP.TO match the appropritate CRTO value, or be
set to 0xff if CRTO is larger than that. This means that CAP.TO can be
used to validate if CRTO is reliable, and provides an appropriate
fallback for setting the timeout value if not. Use whichever is larger.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=217863
Reported-by: Cláudio Sampaio <patola@gmail.com>
Reported-by: Felix Yan <felixonmars@archlinux.org>
Tested-by: Felix Yan <felixonmars@archlinux.org>
Based-on-a-patch-by: Felix Yan <felixonmars@archlinux.org>
Cc: stable@vger.kernel.org
Signed-off-by: Keith Busch <kbusch@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2023-09-23 11:11:10 +02:00
..
apple.c nvme-apple: only reset the controller when RTKit is running 2023-02-06 08:06:34 +01:00
auth.c nvme-auth: don't ignore key generation failures when initializing ctrl keys 2023-07-19 16:20:57 +02:00
constants.c nvme: fix the name of Zone Append for verbose logging 2023-06-09 10:34:04 +02:00
core.c nvme: avoid bogus CRTO values 2023-09-23 11:11:10 +02:00
fabrics.c nvme: consider also host_iface when checking ip options 2022-09-19 17:55:24 +02:00
fabrics.h nvme-fabrics: show well known discovery name 2023-03-11 13:55:31 +01:00
fault_inject.c block: remove the ->rq_disk field in struct request 2021-11-29 06:41:29 -07:00
fc.c nvme-fc: fix initialization order 2023-02-01 08:34:43 +01:00
fc.h nvme-fc: Update header and host for common definitions for LS handling 2020-05-09 16:18:33 -06:00
hwmon.c nvme-pci: add quirk for missing secondary temperature thresholds 2023-06-09 10:34:09 +02:00
ioctl.c block/io_uring: pass in issue_flags for uring_cmd task_work handling 2023-04-06 12:10:51 +02:00
Kconfig nvme-auth: Diffie-Hellman key exchange support 2022-08-02 17:14:49 -06:00
Makefile nvme: don't always build constants.o 2022-08-02 17:22:48 -06:00
multipath.c nvme-multipath: don't call blk_mark_disk_dead in nvme_mpath_remove_disk 2023-06-09 10:34:15 +02:00
nvme.h nvme-auth: don't ignore key generation failures when initializing ctrl keys 2023-07-19 16:20:57 +02:00
pci.c nvme-pci: add NVME_QUIRK_BOGUS_NID for Samsung PM9B1 256G and 512G 2023-08-16 18:27:21 +02:00
rdma.c nvme-rdma: fix potential unbalanced freeze & unfreeze 2023-08-16 18:27:30 +02:00
tcp.c nvme-tcp: fix potential unbalanced freeze & unfreeze 2023-08-16 18:27:30 +02:00
trace.c nvme: implement In-Band authentication 2022-08-02 17:14:49 -06:00
trace.h nvme: fix async event trace event 2023-05-11 23:03:22 +09:00
zns.c block: pass a gendisk to blk_queue_max_open_zones and blk_queue_max_active_zones 2022-07-06 06:46:26 -06:00