Merge branch 'pci/misc'

- Skip Target Speed quirk on clamped ports with no link (Maciej W. Rozycki)

- Disable MSI for ULi M1575 EHCI controller (Imre Kaloz)

- Fix out-of-bounds MMIO read in nvme_disable_and_flr() quirk (Mohamad
  Raizudeen)

* pci/misc:
  PCI: Fix out-of-bounds MMIO read in nvme_disable_and_flr()
  PCI: Disable MSI for ULi M1575 EHCI controller
  PCI: Skip Target Speed quirk on clamped ports with no link
This commit is contained in:
Bjorn Helgaas 2026-10-21 13:20:39 -05:00
commit f4319f548f

View File

@ -109,7 +109,11 @@ int pcie_failed_link_retrain(struct pci_dev *dev)
pcie_capability_read_word(dev, PCI_EXP_LNKSTA, &lnksta);
pcie_capability_read_word(dev, PCI_EXP_LNKCTL2, &oldlnkctl2);
if (!(lnksta & PCI_EXP_LNKSTA_DLLLA) && pcie_lbms_seen(dev, lnksta)) {
if (lnksta & PCI_EXP_LNKSTA_DLLLA) {
;
} else if (PCIE_LNKCTL2_TLS2SPEED(oldlnkctl2) == PCIE_SPEED_2_5GT) {
return ret;
} else if (pcie_lbms_seen(dev, lnksta)) {
pci_info(dev, "broken device, retraining non-functional downstream link at 2.5GT/s\n");
ret = pcie_set_target_speed(dev, PCIE_SPEED_2_5GT, false);
if (ret)
@ -1942,6 +1946,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4388, quirk_no_msi);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4389, quirk_no_msi);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x438a, quirk_no_msi);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x438b, quirk_no_msi);
/* ULi M1575 EHCI (10b9:5239): MSI stalls the async schedule */
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AL, 0x5239, quirk_no_msi);
static void quirk_pcie_mch(struct pci_dev *pdev)
{
@ -4115,7 +4121,7 @@ static int nvme_disable_and_flr(struct pci_dev *dev, bool probe)
if (probe)
return 0;
bar = pci_iomap(dev, 0, NVME_REG_CC + sizeof(cfg));
bar = pci_iomap(dev, 0, NVME_REG_CSTS + sizeof(u32));
if (!bar)
return -ENOTTY;