]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 5 Dec 2016 13:06:35 +0000 (14:06 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 5 Dec 2016 13:06:35 +0000 (14:06 +0100)
added patches:
pci-export-pcie_find_root_port.patch

queue-4.4/pci-export-pcie_find_root_port.patch [new file with mode: 0644]
queue-4.4/series

diff --git a/queue-4.4/pci-export-pcie_find_root_port.patch b/queue-4.4/pci-export-pcie_find_root_port.patch
new file mode 100644 (file)
index 0000000..34f0187
--- /dev/null
@@ -0,0 +1,67 @@
+From e784930bd645e7df78c66e7872fec282b0620075 Mon Sep 17 00:00:00 2001
+From: Johannes Thumshirn <jthumshirn@suse.de>
+Date: Wed, 2 Nov 2016 16:35:51 -0600
+Subject: PCI: Export pcie_find_root_port
+
+From: Johannes Thumshirn <jthumshirn@suse.de>
+
+commit e784930bd645e7df78c66e7872fec282b0620075 upstream.
+
+Export pcie_find_root_port() so we can use it outside of PCIe-AER error
+injection.
+
+Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/pci/pcie/aer/aer_inject.c |   14 --------------
+ include/linux/pci.h               |   14 ++++++++++++++
+ 2 files changed, 14 insertions(+), 14 deletions(-)
+
+--- a/drivers/pci/pcie/aer/aer_inject.c
++++ b/drivers/pci/pcie/aer/aer_inject.c
+@@ -283,20 +283,6 @@ out:
+       return 0;
+ }
+-static struct pci_dev *pcie_find_root_port(struct pci_dev *dev)
+-{
+-      while (1) {
+-              if (!pci_is_pcie(dev))
+-                      break;
+-              if (pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT)
+-                      return dev;
+-              if (!dev->bus->self)
+-                      break;
+-              dev = dev->bus->self;
+-      }
+-      return NULL;
+-}
+-
+ static int find_aer_device_iter(struct device *device, void *data)
+ {
+       struct pcie_device **result = data;
+--- a/include/linux/pci.h
++++ b/include/linux/pci.h
+@@ -1802,6 +1802,20 @@ static inline int pci_pcie_type(const st
+       return (pcie_caps_reg(dev) & PCI_EXP_FLAGS_TYPE) >> 4;
+ }
++static inline struct pci_dev *pcie_find_root_port(struct pci_dev *dev)
++{
++      while (1) {
++              if (!pci_is_pcie(dev))
++                      break;
++              if (pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT)
++                      return dev;
++              if (!dev->bus->self)
++                      break;
++              dev = dev->bus->self;
++      }
++      return NULL;
++}
++
+ void pci_request_acs(void);
+ bool pci_acs_enabled(struct pci_dev *pdev, u16 acs_flags);
+ bool pci_acs_path_enabled(struct pci_dev *start,
index 89252c5eaaa9c1bc5f2935b636f5333d29396a49..76e7b50121b96945c857bf0ffab0a7acc5f891d4 100644 (file)
@@ -4,5 +4,6 @@ kasan-update-kasan_global-for-gcc-7.patch
 x86-traps-ignore-high-word-of-regs-cs-in-early_fixup_exception.patch
 alsa-pcm-call-kill_fasync-in-stream-lock.patch
 rcu-fix-soft-lockup-for-rcu_nocb_kthread.patch
+pci-export-pcie_find_root_port.patch
 pci-set-read-completion-boundary-to-128-iff-root-port-supports-it-_hpx.patch
 mwifiex-printk-overflow-with-32-byte-ssids.patch