From: Joerg Roedel <jroedel@suse.de>
Date: Mon, 11 May 2020 15:15:14 +0200
Subject: [PATCH] kABI: Fix kABI after EDR backport
Patch-mainline: Never, kABI fix only
References: bsc#1169263, jsc#SLE-10700, jsc#SLE-9457, jsc#SLE-12300
Signed-off-by: Joerg Roedel <jroedel@suse.de>
---
drivers/pci/pcie/aer.c | 6 ++++++
drivers/pci/pcie/portdrv.h | 3 +++
include/linux/pci.h | 18 ++++++++++++------
3 files changed, 21 insertions(+), 6 deletions(-)
diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c
index d3d772023b20..7468fcf96ae4 100644
--- a/drivers/pci/pcie/aer.c
+++ b/drivers/pci/pcie/aer.c
@@ -398,6 +398,12 @@ int pci_aer_clear_nonfatal_status(struct pci_dev *dev)
}
EXPORT_SYMBOL_GPL(pci_aer_clear_nonfatal_status);
+int pci_cleanup_aer_uncorrect_error_status(struct pci_dev *dev)
+{
+ return pci_aer_clear_nonfatal_status(dev);
+}
+EXPORT_SYMBOL_GPL(pci_cleanup_aer_uncorrect_error_status);
+
void pci_aer_clear_fatal_status(struct pci_dev *dev)
{
int pos;
diff --git a/drivers/pci/pcie/portdrv.h b/drivers/pci/pcie/portdrv.h
index e4999f24ad92..a586c735a582 100644
--- a/drivers/pci/pcie/portdrv.h
+++ b/drivers/pci/pcie/portdrv.h
@@ -90,6 +90,9 @@ struct pcie_port_service_driver {
/* Device driver may resume normal operations */
void (*error_resume)(struct pci_dev *dev);
+ /* Link Reset Capability - AER service driver specific */
+ pci_ers_result_t (*reset_link)(struct pci_dev *dev);
+
int port_type; /* Type of the port this driver can handle */
u32 service; /* Port service this device represents */
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 173775b2db84..40042523bb6b 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -450,11 +450,6 @@ struct pci_dev {
const struct attribute_group **msi_irq_groups;
#endif
struct pci_vpd *vpd;
-#ifdef CONFIG_PCIE_DPC
- u16 dpc_cap;
- unsigned int dpc_rp_extensions:1;
- u8 dpc_rp_log_size;
-#endif
#ifdef CONFIG_PCI_ATS
union {
struct pci_sriov *sriov; /* PF: SR-IOV info */
@@ -480,6 +475,14 @@ struct pci_dev {
void* suse_kabi_padding;
unsigned long priv_flags; /* Private flags for the PCI driver */
+
+#ifdef CONFIG_PCIE_DPC
+#ifndef __GENKSYMS__
+ u16 dpc_cap;
+ unsigned int dpc_rp_extensions:1;
+ u8 dpc_rp_log_size;
+#endif /* __GENKSYMS__ */
+#endif
};
static inline struct pci_dev *pci_physfn(struct pci_dev *dev)
@@ -521,7 +524,6 @@ struct pci_host_bridge {
unsigned int native_shpc_hotplug:1; /* OS may use SHPC hotplug */
unsigned int native_pme:1; /* OS may use PCIe PME */
unsigned int native_ltr:1; /* OS may use PCIe LTR */
- unsigned int native_dpc:1; /* OS may use PCIe DPC */
unsigned int preserve_config:1; /* Preserve FW resource setup */
void* suse_kabi_padding;
@@ -533,6 +535,10 @@ struct pci_host_bridge {
resource_size_t size,
resource_size_t align);
unsigned long private[0] ____cacheline_aligned;
+
+#ifndef __GENKSYMS__
+ unsigned int native_dpc:1; /* OS may use PCIe DPC */
+#endif
};
#define to_pci_host_bridge(n) container_of(n, struct pci_host_bridge, dev)
--
2.16.3