Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a1af7871 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

ANDROID: GKI: pci: add Android ABI padding to some structures



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: default avatarGreg Kroah-Hartman <gregkh@google.com>
Change-Id: I236df60165b25a33b06fc81f76014162401ba742
parent 1fed4e36
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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 */
+16 −0
Original line number Diff line number Diff line
@@ -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)