From: Maik Broemme <mbroemme@libmpq.org>
To: linux-pci <linux-pci@vger.kernel.org>
Cc: vfio-users <vfio-users@redhat.com>
Subject: [PATCH] PCI: Mark Intel bridge on SuperMicro Atom C3xxx motherboards to avoid bus reset
Date: Fri, 24 May 2019 17:31:18 +0200 [thread overview]
Message-ID: <20190524153118.GA12862@libmpq.org> (raw)
The Intel PCI bridge on SuperMicro Atom C3xxx motherboards do not
successfully complete a bus reset when used with certain child devices.
After the reset, config accesses to the child may fail. If assigning
such device via VFIO it will immediately fail with:
vfio-pci 0000:01:00.0: Failed to return from FLR
vfio-pci 0000:01:00.0: timed out waiting for pending transaction;
performing function level reset anyway
Device will disappear from PCI device list:
!!! Unknown header type 7f
Kernel driver in use: vfio-pci
Kernel modules: ddbridge
The attached patch will mark the root port as incapable of doing a
bus level reset. After that all my tested devices survive a VFIO
assignment and several VM reboot cycles.
Signed-off-by: Maik Broemme <mbroemme@libmpq.org>
---
drivers/pci/quirks.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 0f16acc323c6..86cd42872708 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -3433,6 +3433,13 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATHEROS, 0x0034, quirk_no_bus_reset);
*/
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_CAVIUM, 0xa100, quirk_no_bus_reset);
+/*
+ * Root port on some SuperMicro Atom C3xxx motherboards do not successfully
+ * complete a bus reset when used with certain child devices. After the
+ * reset, config accesses to the child may fail.
+ */
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x19a4, quirk_no_bus_reset);
+
static void quirk_no_pm_reset(struct pci_dev *dev)
{
/*
--
2.21.0
next reply other threads:[~2019-05-24 15:38 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-24 15:31 Maik Broemme [this message]
2019-05-24 16:40 ` [PATCH] PCI: Mark Intel bridge on SuperMicro Atom C3xxx motherboards to avoid bus reset Alex Williamson
2019-05-24 18:41 ` Maik Broemme
2019-05-29 22:03 ` Bjorn Helgaas
2019-05-30 1:49 ` Alex Williamson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190524153118.GA12862@libmpq.org \
--to=mbroemme@libmpq.org \
--cc=linux-pci@vger.kernel.org \
--cc=vfio-users@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.