Blob Blame History Raw
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(-)

--- a/drivers/pci/pcie/aer.c
+++ b/drivers/pci/pcie/aer.c
@@ -275,6 +275,12 @@ int pci_aer_clear_nonfatal_status(struct
 }
 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 aer = dev->aer_cap;
--- a/drivers/pci/pcie/portdrv.h
+++ b/drivers/pci/pcie/portdrv.h
@@ -92,6 +92,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 */
 
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -454,11 +454,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 */
@@ -484,6 +479,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)
@@ -525,8 +528,11 @@ 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 */
+#ifndef __GENKSYMS__
+	/* Safe to leave this bit here - it is bit 8 of a 32 bit field */
+	unsigned int	native_dpc:1;		/* OS may use PCIe DPC */
+#endif
 
 	void* suse_kabi_padding;