OSDN Git Service

ANDROID: GKI: pci: add Android ABI padding to some structures
authorGreg Kroah-Hartman <gregkh@google.com>
Fri, 1 May 2020 14:37:30 +0000 (16:37 +0200)
committerGreg Kroah-Hartman <gregkh@google.com>
Sun, 3 May 2020 06:45:30 +0000 (08:45 +0200)
Try to mitigate potential future driver core api changes by adding a
padding to struct pci_sriov, struct pci_dev, struct pci_bus, and struct
pci_driver.

Based on a change made to the RHEL/CENTOS 8 kernel.

Bug: 151154716
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I236df60165b25a33b06fc81f76014162401ba742

drivers/pci/pci.h
include/linux/pci.h

index e9ede82..6109afc 100644 (file)
@@ -2,6 +2,8 @@
 #ifndef DRIVERS_PCI_H
 #define DRIVERS_PCI_H
 
+#include <linux/android_kabi.h>
+
 #define PCI_FIND_CAP_TTL       48
 
 #define PCI_VSEC_ID_INTEL_TBT  0x1234  /* Thunderbolt */
@@ -293,6 +295,11 @@ struct pci_sriov {
        u16             subsystem_device; /* VF subsystem device */
        resource_size_t barsz[PCI_SRIOV_NUM_BARS];      /* VF BAR size */
        bool            drivers_autoprobe; /* Auto probing of VFs by driver */
+
+       ANDROID_KABI_RESERVE(1);
+       ANDROID_KABI_RESERVE(2);
+       ANDROID_KABI_RESERVE(3);
+       ANDROID_KABI_RESERVE(4);
 };
 
 /* pci_dev priv_flags */
index f00ce74..01dff69 100644 (file)
@@ -35,6 +35,7 @@
 #include <uapi/linux/pci.h>
 
 #include <linux/pci_ids.h>
+#include <linux/android_kabi.h>
 
 /*
  * The PCI interface treats multi-function devices as independent
@@ -447,6 +448,11 @@ struct pci_dev {
        char            *driver_override; /* Driver name to force a match */
 
        unsigned long   priv_flags;     /* Private flags for the PCI driver */
+
+       ANDROID_KABI_RESERVE(1);
+       ANDROID_KABI_RESERVE(2);
+       ANDROID_KABI_RESERVE(3);
+       ANDROID_KABI_RESERVE(4);
 };
 
 static inline struct pci_dev *pci_physfn(struct pci_dev *dev)
@@ -577,6 +583,11 @@ struct pci_bus {
        struct bin_attribute    *legacy_io;     /* Legacy I/O for this bus */
        struct bin_attribute    *legacy_mem;    /* Legacy mem */
        unsigned int            is_added:1;
+
+       ANDROID_KABI_RESERVE(1);
+       ANDROID_KABI_RESERVE(2);
+       ANDROID_KABI_RESERVE(3);
+       ANDROID_KABI_RESERVE(4);
 };
 
 #define to_pci_bus(n)  container_of(n, struct pci_bus, dev)
@@ -768,6 +779,11 @@ struct pci_driver {
        const struct attribute_group **groups;
        struct device_driver    driver;
        struct pci_dynids       dynids;
+
+       ANDROID_KABI_RESERVE(1);
+       ANDROID_KABI_RESERVE(2);
+       ANDROID_KABI_RESERVE(3);
+       ANDROID_KABI_RESERVE(4);
 };
 
 #define        to_pci_driver(drv) container_of(drv, struct pci_driver, driver)