Re: [PATCH] pci: quirks: Disable native PCIe hotplug on MSI Claw A8 root bridge
Derek John Clark <[email protected]>
| Newsgroups | dev.linux.lists.sashiko-reviews,org.kernel.vger.linux-pci |
|---|---|
| Message-ID | <CAFqHKTk47MvjVvijt_JKH53pMmaNMWSGvU9QkTuj6zJ7XHhnXQ@mail.gmail.com> |
On Thu, Aug 6, 2026 at 12:19 PM <[email protected]> wrote: > > Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: > - [High] The quirk disables native PCIe hotplug on the shared host bridge rather than specifically for the target root port, which breaks hotplug functionality for dynamically enumerated Thunderbolt/USB4 devices system-wide. > -- > > --- Patch [1]: [PATCH] pci: quirks: Disable native PCIe hotplug on MSI Claw A8 root bridge --- > commit 841400e3b6d906dff0f94738835128127178d2e6 > Author: Derek J. Clark <[email protected]> > > pci: quirks: Disable native PCIe hotplug on MSI Claw A8 root bridge > > This commit adds a quirk for the MSI Claw A8 to prevent s2idle resume failures > caused by the Realtek card reader. It disables native PCIe hotplug on the host > bridge when the specific root port is found. > > > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c > > --- a/drivers/pci/quirks.c > > +++ b/drivers/pci/quirks.c > > [ ... ] > > > +static void quirk_claw_a8_no_native_hotplug(struct pci_dev *pdev) > > +{ > > + struct pci_host_bridge *bridge; > > + > > + if (!dmi_match(DMI_BOARD_NAME, "MS-1T8K")) > > + return; > > + > > + if (pdev->bus->number != 0 || > > + PCI_SLOT(pdev->devfn) != 2 || > > + PCI_FUNC(pdev->devfn) != 2) > > + return; > > + > > + bridge = pci_find_host_bridge(pdev->bus); > > + if (!bridge) > > + return; > > + dev_info(&pdev->dev, "disabling native PCIe hotplug\n"); > > + bridge->native_pcie_hotplug = false; > > [Severity: High] > Does setting bridge->native_pcie_hotplug = false here break hotplug > functionality for dynamically enumerated Thunderbolt/USB4 devices on this > system? > > Because the pci_host_bridge is a shared structure, modifying it globally > prevents the pciehp driver from claiming any hotplug-capable PCIe port under > that domain. While this might be the only fixed slot reporting HotPlug+ during > boot, downstream ports on dynamically hot-plugged PCIe switches (like > Thunderbolt docks, eGPUs, or NVMe enclosures) rely on the host bridge's native > hotplug capability to function. > > Would it be safer to clear pdev->is_pciehp and pdev->is_hotplug_bridge on the > specific root port instead of modifying the shared host bridge? > Hi robot, and any humans reading this, This identified something I missed when scoping the patch. The two USB ports on top of the unit are USB4/TB capable and are affected by the root bridge quirk. In a previous version of the patch I did try pdev->is_hotplug_bridge = false to no effect, but was not aware of pdev->is_pciehp. I will try with both and see if that resolves it at the lower scope. Thanks, Derek > > +} > > +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x150b, > > + quirk_claw_a8_no_native_hotplug); > > -- > Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1