ANDROID: GKI: fix up abi breakage in fib_rules.h

Commit ee38eb8cf9 ("ipv6: fix memory leak in fib6_rule_suppress")
added a new variable to the fips_rules_ops.suppress() callback function
pointer in order to properly handle a memory leak.

This change is not a real ABI breakage, but since the function pointer
structure is included in other structures within the networking stack,
and they all propagate up to structures that are tracked, libabigail
properly detects this change.

There is no problem making the change, as the only providers of these
callback functions are in the kernel already, and have been fixed up in
this commit, and the variable size does not change (function pointers
are function pointers), so paper over the CRC change with a judicious
ifdef __GENKSYMS__ hack and update the .xml file to properly reflect the
updates change:

Leaf changes summary: 5 artifacts changed
Changed leaf types summary: 5 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

'struct fib_rules_ops at fib_rules.h:59:1' changed:
  type size hasn't changed
  there are data member changes:
    type 'typedef bool (fib_rule*, fib_lookup_arg*)*' of 'fib_rules_ops::suppress' changed:
      pointer type changed from: 'typedef bool (fib_rule*, fib_lookup_arg*)*' to: 'typedef bool (fib_rule*, int, fib_lookup_arg*)*'
  3663 impacted interfaces

'struct inet_connection_sock at inet_connection_sock.h:89:1' changed (indirectly):
  type size hasn't changed
  there are data member changes:
    type 'struct inet_sock' of 'inet_connection_sock::icsk_inet' changed:
      type size hasn't changed
      there are data member changes:
        type 'struct sock' of 'inet_sock::sk' changed:
          type size hasn't changed
          there are data member changes:
            data member u64 android_kabi_reserved1 at offset 6144 (in bits) became anonymous data member 'union {spinlock_t sk_peer_lock; struct {u64 android_kabi_reserved1;}; union {};}'
          3663 impacted interfaces
      2 impacted interfaces
  2 impacted interfaces

'struct inet_sock at inet_sock.h:195:1' changed (indirectly):
  details were reported earlier

'struct sock at sock.h:326:1' changed:
  details were reported earlier

'struct tcp_sock at tcp.h:138:1' changed (indirectly):
  type size hasn't changed
  there are data member changes:
    type 'struct inet_connection_sock' of 'tcp_sock::inet_conn' changed, as reported earlier
  one impacted interface

Bug: 161946584
Change-Id: I5fd2fcece8f57536369c51e438bd2739631b34e3
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Greg Kroah-Hartman 2021-12-08 17:56:22 +01:00
parent 4872cb8f42
commit 0bbf0a0642
2 changed files with 80933 additions and 84361 deletions

File diff suppressed because it is too large Load Diff

View File

@ -68,7 +68,14 @@ struct fib_rules_ops {
int (*action)(struct fib_rule *,
struct flowi *, int,
struct fib_lookup_arg *);
/* __GENKSYMS__ hack to preserve the abi change that happened in
* cdef485217d3 ("ipv6: fix memory leak in fib6_rule_suppress")
*/
#ifdef __GENKSYMS__
bool (*suppress)(struct fib_rule *,
#else
bool (*suppress)(struct fib_rule *, int,
#endif
struct fib_lookup_arg *);
int (*match)(struct fib_rule *,
struct flowi *, int);