]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
PCI: Do not attempt to set ExtTag for VFs
authorHåkon Bugge <haakon.bugge@oracle.com>
Wed, 12 Nov 2025 09:54:40 +0000 (10:54 +0100)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 8 Jan 2026 23:52:29 +0000 (17:52 -0600)
The bit for enabling extended tags is Reserved and Preserved (RsvdP) for
VFs, according to PCIe r7.0 section 7.5.3.4 table 7.21.  Hence, bail out
early from pci_configure_extended_tags() if the device is a VF.

Otherwise, we may see incorrect log messages such as:

  kernel: pci 0000:af:00.2: enabling Extended Tags

(af:00.2 is a VF)

Fixes: 60db3a4d8cc9 ("PCI: Enable PCIe Extended Tags if supported")
Signed-off-by: Håkon Bugge <haakon.bugge@oracle.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Zhu Yanjun <yanjun.zhu@linux.dev>
Link: https://patch.msgid.link/20251112095442.1913258-1-haakon.bugge@oracle.com
drivers/pci/probe.c

index 41183aed8f5d94c514e9d1787107999acbba7c4f..86665658d70477eab149bf951ee898cf1df2221b 100644 (file)
@@ -2270,7 +2270,8 @@ int pci_configure_extended_tags(struct pci_dev *dev, void *ign)
        u16 ctl;
        int ret;
 
-       if (!pci_is_pcie(dev))
+       /* PCI_EXP_DEVCTL_EXT_TAG is RsvdP in VFs */
+       if (!pci_is_pcie(dev) || dev->is_virtfn)
                return 0;
 
        ret = pcie_capability_read_dword(dev, PCI_EXP_DEVCAP, &cap);