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

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

ANDROID: GKI: device.h: add Android ABI padding to some structures



Try to mitigate potential future driver core api changes by padding to
struct bus_type, struct device_driver, struct class, and struct device.

Based on a patch from Michal Marek <mmarek@suse.cz> from the SLES kernel

Leaf changes summary: 70 artifacts changed
Changed leaf types summary: 70 leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

[majority snipped, as there are a lot of child-structure changes, here
 are the real things changed]

'struct bus_type at device.h:122:1' changed:
  type size changed from 1408 to 1664 (in bits)
  4 data member insertions:
    'u64 bus_type::android_kabi_reserved1', at offset 1408 (in bits) at device.h:157:1
    'u64 bus_type::android_kabi_reserved2', at offset 1472 (in bits) at device.h:158:1
    'u64 bus_type::android_kabi_reserved3', at offset 1536 (in bits) at device.h:159:1
    'u64 bus_type::android_kabi_reserved4', at offset 1600 (in bits) at device.h:160:1

  1410 impacted interfaces:

'struct class at device.h:589:1' changed:
  type size changed from 960 to 1216 (in bits)
  4 data member insertions:
    'u64 class::android_kabi_reserved1', at offset 960 (in bits) at device.h:625:1
    'u64 class::android_kabi_reserved2', at offset 1024 (in bits) at device.h:626:1
    'u64 class::android_kabi_reserved3', at offset 1088 (in bits) at device.h:627:1
    'u64 class::android_kabi_reserved4', at offset 1152 (in bits) at device.h:628:1

  1410 impacted interfaces:

'struct device at device.h:1257:1' changed:
  type size changed from 6144 to 6656 (in bits)
  8 data member insertions:
    'u64 device::android_kabi_reserved1', at offset 6144 (in bits) at device.h:1364:1
    'u64 device::android_kabi_reserved2', at offset 6208 (in bits) at device.h:1365:1
    'u64 device::android_kabi_reserved3', at offset 6272 (in bits) at device.h:1366:1
    'u64 device::android_kabi_reserved4', at offset 6336 (in bits) at device.h:1367:1
    'u64 device::android_kabi_reserved5', at offset 6400 (in bits) at device.h:1368:1
    'u64 device::android_kabi_reserved6', at offset 6464 (in bits) at device.h:1369:1
    'u64 device::android_kabi_reserved7', at offset 6528 (in bits) at device.h:1370:1
    'u64 device::android_kabi_reserved8', at offset 6592 (in bits) at device.h:1371:1

  1410 impacted interfaces:

'struct device_driver at device.h:383:1' changed:
  type size changed from 1152 to 1408 (in bits)
  4 data member insertions:
    'u64 device_driver::android_kabi_reserved1', at offset 1152 (in bits) at device.h:416:1
    'u64 device_driver::android_kabi_reserved2', at offset 1216 (in bits) at device.h:417:1
    'u64 device_driver::android_kabi_reserved3', at offset 1280 (in bits) at device.h:418:1
    'u64 device_driver::android_kabi_reserved4', at offset 1344 (in bits) at device.h:419:1

  1410 impacted interfaces:

Bug: 151154716
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
Change-Id: I6892cde6481ba775789f0c02239dcfde3a26b56e
parent 26553937
Loading
Loading
Loading
Loading
+3710 −3650

File changed.

Preview size limit exceeded, changes collapsed.

+24 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@
#include <linux/uidgid.h>
#include <linux/gfp.h>
#include <linux/overflow.h>
#include <linux/android_kabi.h>
#include <asm/device.h>

struct device;
@@ -152,6 +153,11 @@ struct bus_type {
	struct lock_class_key lock_key;

	bool need_parent_lock;

	ANDROID_KABI_RESERVE(1);
	ANDROID_KABI_RESERVE(2);
	ANDROID_KABI_RESERVE(3);
	ANDROID_KABI_RESERVE(4);
};

extern int __must_check bus_register(struct bus_type *bus);
@@ -406,6 +412,11 @@ struct device_driver {
	void (*coredump) (struct device *dev);

	struct driver_private *p;

	ANDROID_KABI_RESERVE(1);
	ANDROID_KABI_RESERVE(2);
	ANDROID_KABI_RESERVE(3);
	ANDROID_KABI_RESERVE(4);
};


@@ -610,6 +621,11 @@ struct class {
	const struct dev_pm_ops *pm;

	struct subsys_private *p;

	ANDROID_KABI_RESERVE(1);
	ANDROID_KABI_RESERVE(2);
	ANDROID_KABI_RESERVE(3);
	ANDROID_KABI_RESERVE(4);
};

struct class_dev_iter {
@@ -1345,6 +1361,14 @@ struct device {
    defined(CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU_ALL)
	bool			dma_coherent:1;
#endif
	ANDROID_KABI_RESERVE(1);
	ANDROID_KABI_RESERVE(2);
	ANDROID_KABI_RESERVE(3);
	ANDROID_KABI_RESERVE(4);
	ANDROID_KABI_RESERVE(5);
	ANDROID_KABI_RESERVE(6);
	ANDROID_KABI_RESERVE(7);
	ANDROID_KABI_RESERVE(8);
};

static inline struct device *kobj_to_dev(struct kobject *kobj)