Skip to content

Commit 283810a

Browse files
committed
Merge branch 'pci/virtualization'
- Delay extra 250ms after FLR of Solidigm P44 Pro NVMe to avoid KVM hang when guest is rebooted (Mike Pastore) - Add function 1 DMA alias quirk for Marvell 88SE9235 (Robin Murphy) * pci/virtualization: PCI: Add function 1 DMA alias quirk for Marvell 88SE9235 PCI: Delay after FLR of Solidigm P44 Pro NVMe
2 parents d0b7b3a + 88d3417 commit 283810a

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

drivers/pci/quirks.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4086,10 +4086,11 @@ static int nvme_disable_and_flr(struct pci_dev *dev, bool probe)
40864086
}
40874087

40884088
/*
4089-
* Intel DC P3700 NVMe controller will timeout waiting for ready status
4090-
* to change after NVMe enable if the driver starts interacting with the
4091-
* device too soon after FLR. A 250ms delay after FLR has heuristically
4092-
* proven to produce reliably working results for device assignment cases.
4089+
* Some NVMe controllers such as Intel DC P3700 and Solidigm P44 Pro will
4090+
* timeout waiting for ready status to change after NVMe enable if the driver
4091+
* starts interacting with the device too soon after FLR. A 250ms delay after
4092+
* FLR has heuristically proven to produce reliably working results for device
4093+
* assignment cases.
40934094
*/
40944095
static int delay_250ms_after_flr(struct pci_dev *dev, bool probe)
40954096
{
@@ -4176,6 +4177,7 @@ static const struct pci_dev_reset_methods pci_dev_reset_methods[] = {
41764177
{ PCI_VENDOR_ID_SAMSUNG, 0xa804, nvme_disable_and_flr },
41774178
{ PCI_VENDOR_ID_INTEL, 0x0953, delay_250ms_after_flr },
41784179
{ PCI_VENDOR_ID_INTEL, 0x0a54, delay_250ms_after_flr },
4180+
{ PCI_VENDOR_ID_SOLIDIGM, 0xf1ac, delay_250ms_after_flr },
41794181
{ PCI_VENDOR_ID_CHELSIO, PCI_ANY_ID,
41804182
reset_chelsio_generic_dev },
41814183
{ PCI_VENDOR_ID_HUAWEI, PCI_DEVICE_ID_HINIC_VF,
@@ -4267,6 +4269,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9220,
42674269
/* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c49 */
42684270
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9230,
42694271
quirk_dma_func1_alias);
4272+
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9235,
4273+
quirk_dma_func1_alias);
42704274
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_TTI, 0x0642,
42714275
quirk_dma_func1_alias);
42724276
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_TTI, 0x0645,

include/linux/pci_ids.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,8 @@
158158

159159
#define PCI_VENDOR_ID_LOONGSON 0x0014
160160

161+
#define PCI_VENDOR_ID_SOLIDIGM 0x025e
162+
161163
#define PCI_VENDOR_ID_TTTECH 0x0357
162164
#define PCI_DEVICE_ID_TTTECH_MC322 0x000a
163165

0 commit comments

Comments
 (0)