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

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

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



Try to mitigate potential future driver core api changes by adding a
padding to struct vfsmount.

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

Leaf changes summary: 1 artifact changed
Changed leaf types summary: 1 leaf type 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

'struct vfsmount at mount.h:68:1' changed:
  type size changed from 256 to 512 (in bits)
  4 data member insertions:
    'u64 vfsmount::android_kabi_reserved1', at offset 192 (in bits) at mount.h:73:1
    'u64 vfsmount::android_kabi_reserved2', at offset 256 (in bits) at mount.h:74:1
    'u64 vfsmount::android_kabi_reserved3', at offset 320 (in bits) at mount.h:75:1
    'u64 vfsmount::android_kabi_reserved4', at offset 384 (in bits) at mount.h:76:1
  there are data member changes:
    'void* vfsmount::data' offset changed from 192 to 448 (in bits) (by +256 bits)
  8 impacted interfaces:
    function vfsmount* mntget(vfsmount*)
    function int notify_change2(vfsmount*, dentry*, iattr*, inode**)
    function int vfs_create2(vfsmount*, inode*, dentry*, umode_t, bool)
    function int vfs_mkdir2(vfsmount*, inode*, dentry*, umode_t)
    function int vfs_path_lookup(dentry*, vfsmount*, const char*, unsigned int, path*)
    function int vfs_rename2(vfsmount*, inode*, dentry*, inode*, dentry*, inode**, unsigned int)
    function int vfs_rmdir2(vfsmount*, inode*, dentry*)
    function int vfs_unlink2(vfsmount*, inode*, dentry*, inode**)

Bug: 151154716
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
Change-Id: I9ce1b63f05c90af168eeea1312ac88d3cc5cfdf3
parent b34f70f7
Loading
Loading
Loading
Loading
+18 −6
Original line number Diff line number Diff line
@@ -58317,18 +58317,30 @@
      </function-decl>
    </abi-instr>
    <abi-instr version='1.0' address-size='64' path='fs/binfmt_misc.c' language='LANG_C89'>
      <class-decl name='vfsmount' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/mount.h' line='68' column='1' id='type-id-6187'>
      <class-decl name='vfsmount' size-in-bits='512' is-struct='yes' visibility='default' filepath='include/linux/mount.h' line='69' column='1' id='type-id-6187'>
        <data-member access='public' layout-offset-in-bits='0'>
          <var-decl name='mnt_root' type-id='type-id-2179' visibility='default' filepath='include/linux/mount.h' line='69' column='1'/>
          <var-decl name='mnt_root' type-id='type-id-2179' visibility='default' filepath='include/linux/mount.h' line='70' column='1'/>
        </data-member>
        <data-member access='public' layout-offset-in-bits='64'>
          <var-decl name='mnt_sb' type-id='type-id-6188' visibility='default' filepath='include/linux/mount.h' line='70' column='1'/>
          <var-decl name='mnt_sb' type-id='type-id-6188' visibility='default' filepath='include/linux/mount.h' line='71' column='1'/>
        </data-member>
        <data-member access='public' layout-offset-in-bits='128'>
          <var-decl name='mnt_flags' type-id='type-id-92' visibility='default' filepath='include/linux/mount.h' line='71' column='1'/>
          <var-decl name='mnt_flags' type-id='type-id-92' visibility='default' filepath='include/linux/mount.h' line='72' column='1'/>
        </data-member>
        <data-member access='public' layout-offset-in-bits='192'>
          <var-decl name='data' type-id='type-id-126' visibility='default' filepath='include/linux/mount.h' line='72' column='1'/>
          <var-decl name='android_kabi_reserved1' type-id='type-id-202' visibility='default' filepath='include/linux/mount.h' line='73' column='1'/>
        </data-member>
        <data-member access='public' layout-offset-in-bits='256'>
          <var-decl name='android_kabi_reserved2' type-id='type-id-202' visibility='default' filepath='include/linux/mount.h' line='74' column='1'/>
        </data-member>
        <data-member access='public' layout-offset-in-bits='320'>
          <var-decl name='android_kabi_reserved3' type-id='type-id-202' visibility='default' filepath='include/linux/mount.h' line='75' column='1'/>
        </data-member>
        <data-member access='public' layout-offset-in-bits='384'>
          <var-decl name='android_kabi_reserved4' type-id='type-id-202' visibility='default' filepath='include/linux/mount.h' line='76' column='1'/>
        </data-member>
        <data-member access='public' layout-offset-in-bits='448'>
          <var-decl name='data' type-id='type-id-126' visibility='default' filepath='include/linux/mount.h' line='77' column='1'/>
        </data-member>
      </class-decl>
      <pointer-type-def type-id='type-id-6189' size-in-bits='64' id='type-id-4175'/>
@@ -74252,7 +74264,7 @@
        <parameter type-id='type-id-1595'/>
        <return type-id='type-id-92'/>
      </function-decl>
      <function-decl name='mntget' mangled-name='mntget' filepath='include/linux/mount.h' line='84' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mntget'>
      <function-decl name='mntget' mangled-name='mntget' filepath='include/linux/mount.h' line='89' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mntget'>
        <parameter type-id='type-id-6193'/>
        <return type-id='type-id-6193'/>
      </function-decl>
+5 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
#include <linux/spinlock.h>
#include <linux/seqlock.h>
#include <linux/atomic.h>
#include <linux/android_kabi.h>

struct super_block;
struct vfsmount;
@@ -69,6 +70,10 @@ struct vfsmount {
	struct dentry *mnt_root;	/* root of the mounted tree */
	struct super_block *mnt_sb;	/* pointer to superblock */
	int mnt_flags;
	ANDROID_KABI_RESERVE(1);
	ANDROID_KABI_RESERVE(2);
	ANDROID_KABI_RESERVE(3);
	ANDROID_KABI_RESERVE(4);
	void *data;
} __randomize_layout;