Merge branch 'misc.namei' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[linux-2.6-microblaze.git] / drivers / pci / pcie / portdrv_core.c
index e1fed66..3ee6396 100644 (file)
@@ -257,8 +257,13 @@ static int get_port_device_capability(struct pci_dev *dev)
                services |= PCIE_PORT_SERVICE_DPC;
 
        if (pci_pcie_type(dev) == PCI_EXP_TYPE_DOWNSTREAM ||
-           pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT)
-               services |= PCIE_PORT_SERVICE_BWNOTIF;
+           pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT) {
+               u32 linkcap;
+
+               pcie_capability_read_dword(dev, PCI_EXP_LNKCAP, &linkcap);
+               if (linkcap & PCI_EXP_LNKCAP_LBNC)
+                       services |= PCIE_PORT_SERVICE_BWNOTIF;
+       }
 
        return services;
 }