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

In commit 0da41ddfb2 ("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.

Update the .stg file with the structure change:
type 'struct prefix_info' changed
  member 'union { __u8 flags; struct { __u8 reserved:6; __u8 autoconf:1; __u8 onlink:1; }; }' was added
  member '__u8 reserved:6' was removed
  member '__u8 autoconf:1' was removed
  member '__u8 onlink:1' was removed

Bug: 161946584
Fixes: 0da41ddfb2 ("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 9b8f2430b3
commit 1ac76d45aa
2 changed files with 42 additions and 9 deletions

View File

@ -38789,6 +38789,10 @@ member {
id: 0x230f36dc
type_id: 0x0312ab60
}
member {
id: 0x23531e28
type_id: 0x026208b2
}
member {
id: 0x2380a48f
type_id: 0x012ce22f
@ -39674,6 +39678,11 @@ member {
type_id: 0x5d86aa37
offset: 96
}
member {
id: 0x34aaae1a
type_id: 0x5d84d1ff
offset: 24
}
member {
id: 0x34be27ed
type_id: 0x5dd6efa4
@ -50707,10 +50716,10 @@ member {
offset: 160
}
member {
id: 0xb2dd57f2
id: 0xb2dd5b41
name: "autoconf"
type_id: 0xb3e7bac9
offset: 30
offset: 6
bitsize: 1
}
member {
@ -140374,10 +140383,10 @@ member {
offset: 9920
}
member {
id: 0x7adb50ba
id: 0x7adb5caf
name: "onlink"
type_id: 0xb3e7bac9
offset: 31
offset: 7
bitsize: 1
}
member {
@ -164061,10 +164070,9 @@ member {
offset: 1024
}
member {
id: 0x688b9047
id: 0x688b9626
name: "reserved"
type_id: 0xb3e7bac9
offset: 24
bitsize: 6
}
member {
@ -208572,6 +208580,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
@ -213664,6 +213682,15 @@ struct_union {
member_id: 0x8c9fd173
}
}
struct_union {
id: 0x5d84d1ff
kind: UNION
definition {
bytesize: 1
member_id: 0x2ddb63e4
member_id: 0x23531e28
}
}
struct_union {
id: 0x5d86aa37
kind: UNION
@ -248053,9 +248080,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;