[PATCH] pci: Avoid FLR for AMD FCH AHCI adapters

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



PCI passthrough to VMs does not work with AMD FCH AHCI adapters: the
guest OS fails to correctly probe devices attached to the controller due
to FIS communication failures. Forcing the "bus" reset method before
unbinding & binding the adapter to the vfio-pci driver solves this
issue. I.e.:

echo "bus" > /sys/bus/pci/devices/<ID>/reset_method

gives a working guest OS, thus indicating that the default flr reset
method is defective, resulting in the adapter not being reset correctly.

This patch applies the no_flr quirk to AMD FCH AHCI devices to
permanently solve this issue.

Reported-by: Niklas Cassel <niklas.cassel@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Damien Le Moal <damien.lemoal@xxxxxxxxxxxxxxxxxx>
---
 drivers/pci/quirks.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 285acc4aaccc..20ac67d59034 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -5340,6 +5340,7 @@ static void quirk_no_flr(struct pci_dev *dev)
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x1487, quirk_no_flr);
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x148c, quirk_no_flr);
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x149c, quirk_no_flr);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x7901, quirk_no_flr);
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1502, quirk_no_flr);
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1503, quirk_no_flr);
 
-- 
2.39.1




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux