2018-04-12 19:33:57

by Micah Parrish

[permalink] [raw]
Subject: [PATCH] NVMe: Add Quirk Delay before CHK RDY for Seagate Nytro Flash Storage

Add Seagate Nytro Flash Storage nvme drive to quirk list for
NVME_QUIRK_DELAY_BEFORE_CHK_RDY, which solves a bug where the drive is
probed on hot-add before the firmare is ready, I/O errors are generated
while reading sector 0, and linux is "unable to read partition table".
This has occurred when the drive is in an NVME drive slot adjacent to an
Intel drive.

Intel (Keith Busch and Pragyan Pathi) and Seagate (Jeffery Wang
and Kieulien Dang) agreed to add this quirk in off-list discussion.

Signed-off-by: [email protected]

--- linux/drivers/nvme/host/pci.c.orig 2018-04-05 13:52:23.048890019 -0600
+++ linux/drivers/nvme/host/pci.c 2018-04-09 11:20:57.432900569 -0600
@@ -2687,6 +2687,8 @@ static const struct pci_device_id nvme_i
.driver_data = NVME_QUIRK_NO_DEEPEST_PS },
{ PCI_VDEVICE(INTEL, 0x5845), /* Qemu emulated controller */
.driver_data = NVME_QUIRK_IDENTIFY_CNS, },
+ { PCI_DEVICE(0x1bb1, 0x0100), /* Seagate Nytro Flash Storage */
+ .driver_data = NVME_QUIRK_DELAY_BEFORE_CHK_RDY, },
{ PCI_DEVICE(0x1c58, 0x0003), /* HGST adapter */
.driver_data = NVME_QUIRK_DELAY_BEFORE_CHK_RDY, },
{ PCI_DEVICE(0x1c58, 0x0023), /* WDC SN200 adapter */


2018-04-12 21:31:40

by Martin K. Petersen

[permalink] [raw]
Subject: Re: [PATCH] NVMe: Add Quirk Delay before CHK RDY for Seagate Nytro Flash Storage


Micah,

> Add Seagate Nytro Flash Storage nvme drive to quirk list for
> NVME_QUIRK_DELAY_BEFORE_CHK_RDY, which solves a bug where the drive is
> probed on hot-add before the firmare is ready, I/O errors are generated
> while reading sector 0, and linux is "unable to read partition table".

Looks fine.

Reviewed-by: Martin K. Petersen <[email protected]>

--
Martin K. Petersen Oracle Linux Engineering

2018-04-12 22:14:37

by Keith Busch

[permalink] [raw]
Subject: Re: [PATCH] NVMe: Add Quirk Delay before CHK RDY for Seagate Nytro Flash Storage

Thanks, applied for 4.17-rc1.

I was a little surprised git was able to apply this since the patch
format is off, but it worked!