ANDROID: GKI: fix crc issue in include/net/addrconf.h

In commit 9846d8c8c3 ("net: ipv6: support reporting otherwise unknown
prefix flags in RTM_NEWPREFIX") a union is added to fix some issues, but
that messes with the crc of a number of networking symbols for obvious
reasons.  As this does not actually change the abi at all, use some
GENKSYMS magic #define logic to preserve the crc so that all is well.

Updates the .stg file with the following structure change that is
abi-safe:
type 'struct prefix_info' changed
  member 'union { __u8 flags; struct { __u8 reserved; __u8 autoconf; __u8 onlink; }; }' was added
  member '__u8 reserved' was removed
  member '__u8 autoconf' was removed
  member '__u8 onlink' was removed

Bug: 161946584
Fixes: 9846d8c8c3 ("net: ipv6: support reporting otherwise unknown prefix flags in RTM_NEWPREFIX")
Cc: Maciej Żenczykowski <maze@google.com>
Cc: Lorenzo Colitti <lorenzo@google.com>
Change-Id: I9d2df74e8f3ae60425534f1b33d50b2bc444f7f5
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Greg Kroah-Hartman
2024-01-04 12:09:05 +00:00
parent 856eb60eab
commit 39420ad9b4
2 changed files with 42 additions and 9 deletions

View File

@@ -35315,6 +35315,10 @@ member {
id: 0x22e86cdc
type_id: 0x048fc360
}
member {
id: 0x23531e28
type_id: 0x026208b2
}
member {
id: 0x2380a48f
type_id: 0x012ce22f
@@ -36062,6 +36066,11 @@ member {
id: 0x34a07023
type_id: 0x5dafb09e
}
member {
id: 0x34aaae1a
type_id: 0x5d84d1ff
offset: 24
}
member {
id: 0x34adb3c9
type_id: 0x5d98acb2
@@ -46283,10 +46292,10 @@ member {
offset: 160
}
member {
id: 0xb2dd57f2
id: 0xb2dd5b41
name: "autoconf"
type_id: 0xb3e7bac9
offset: 30
offset: 6
bitsize: 1
}
member {
@@ -128916,10 +128925,10 @@ member {
offset: 9920
}
member {
id: 0x7adb50ba
id: 0x7adb5caf
name: "onlink"
type_id: 0xb3e7bac9
offset: 31
offset: 7
bitsize: 1
}
member {
@@ -150440,10 +150449,9 @@ member {
bitsize: 40
}
member {
id: 0x688b9047
id: 0x688b9626
name: "reserved"
type_id: 0xb3e7bac9
offset: 24
bitsize: 6
}
member {
@@ -191158,6 +191166,16 @@ struct_union {
member_id: 0x2d8a4e32
}
}
struct_union {
id: 0x026208b2
kind: STRUCT
definition {
bytesize: 1
member_id: 0x688b9626
member_id: 0xb2dd5b41
member_id: 0x7adb5caf
}
}
struct_union {
id: 0x02c70092
kind: STRUCT
@@ -195572,6 +195590,15 @@ struct_union {
member_id: 0x8c9fd173
}
}
struct_union {
id: 0x5d84d1ff
kind: UNION
definition {
bytesize: 1
member_id: 0x2ddb63e4
member_id: 0x23531e28
}
}
struct_union {
id: 0x5d98acb2
kind: UNION
@@ -227095,9 +227122,7 @@ struct_union {
member_id: 0x5ce532c4
member_id: 0xb5de8e04
member_id: 0x2165da89
member_id: 0x688b9047
member_id: 0xb2dd57f2
member_id: 0x7adb50ba
member_id: 0x34aaae1a
member_id: 0xe91a1d71
member_id: 0xbada6e7d
member_id: 0x08cabd3c

View File

@@ -31,9 +31,15 @@ struct prefix_info {
__u8 length;
__u8 prefix_len;
/*
* ANDROID: crc fix for commit 9354e0acdb74 ("net: ipv6: support
* reporting otherwise unknown prefix * flags in RTM_NEWPREFIX")
*/
#ifndef __GENKSYMS__
union __packed {
__u8 flags;
struct __packed {
#endif
#if defined(__BIG_ENDIAN_BITFIELD)
__u8 onlink : 1,
autoconf : 1,
@@ -45,8 +51,10 @@ struct prefix_info {
#else
#error "Please fix <asm/byteorder.h>"
#endif
#ifndef __GENKSYMS__
};
};
#endif
__be32 valid;
__be32 prefered;
__be32 reserved2;