summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorBjorn Helgaas <bhelgaas@google.com>2013-11-07 15:02:04 -0700
committerBjorn Helgaas <bhelgaas@google.com>2013-11-07 15:02:04 -0700
commiteaaeb1cb33310dea6c3fa45d8bfc63e5a1d0a846 (patch)
treea76b60ff193a29b521e1bd63943a6d1969fe9af4 /include
parentc245f2422031fec447e4d9e35fb0ef0fd5e42ab9 (diff)
parent79272138bd5c35edb9be5ae7b473a2741751a706 (diff)
downloadlinux-stable-eaaeb1cb33310dea6c3fa45d8bfc63e5a1d0a846.tar.gz
linux-stable-eaaeb1cb33310dea6c3fa45d8bfc63e5a1d0a846.tar.bz2
linux-stable-eaaeb1cb33310dea6c3fa45d8bfc63e5a1d0a846.zip
Merge branch 'pci/misc' into next
* pci/misc: PCI: Enable upstream bridges even for VFs on virtual buses PCI: Add pci_upstream_bridge() PCI: Add x86_msi.msi_mask_irq() and msix_mask_irq()
Diffstat (limited to 'include')
-rw-r--r--include/linux/msi.h2
-rw-r--r--include/linux/pci.h9
2 files changed, 11 insertions, 0 deletions
diff --git a/include/linux/msi.h b/include/linux/msi.h
index b17ead818aec..87cce50bd121 100644
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -64,6 +64,8 @@ void arch_restore_msi_irqs(struct pci_dev *dev, int irq);
void default_teardown_msi_irqs(struct pci_dev *dev);
void default_restore_msi_irqs(struct pci_dev *dev, int irq);
+u32 default_msi_mask_irq(struct msi_desc *desc, u32 mask, u32 flag);
+u32 default_msix_mask_irq(struct msi_desc *desc, u32 flag);
struct msi_chip {
struct module *owner;
diff --git a/include/linux/pci.h b/include/linux/pci.h
index d3a888ae4b2e..835ec7bf6c05 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -480,6 +480,15 @@ static inline bool pci_is_root_bus(struct pci_bus *pbus)
return !(pbus->parent);
}
+static inline struct pci_dev *pci_upstream_bridge(struct pci_dev *dev)
+{
+ dev = pci_physfn(dev);
+ if (pci_is_root_bus(dev->bus))
+ return NULL;
+
+ return dev->bus->self;
+}
+
#ifdef CONFIG_PCI_MSI
static inline bool pci_dev_msi_enabled(struct pci_dev *pci_dev)
{