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

Commit e3a8df30 authored by Aleksei Vetrov's avatar Aleksei Vetrov
Browse files

ANDROID: add file for recording allowed ABI breaks



The tooling is configured to block any changes that has a chance to
break ABI, including the possibly safe:

* replacement of ANDROID_KABI_RESERVE with ANDROID_KABI_USE
* changes to internal structures that are not accessible to modules
* addition of enumerators

These changes are difficult for the tooling to identify as definitively
non-breaking, therefore, a human reviewer must check the change and
approve it as non-breaking.

This change adds a file to record the approval with the change that was
marked as breaking. This allows the tooling to:

* unblock presubmits for the change
* don't block presubmits when it is cherry-picked to another branch
* filter compatibility reports between a release branch and a tip of the
  development branch it was forked from

The file is prefilled with all breaks that happened from the KMI freeze.

Bug: 365521273
Change-Id: I63fbed5c364cb8c7bd149bf40d084d3d87533bf7
Signed-off-by: default avatarAleksei Vetrov <vvvvvv@google.com>
parent 0215dc28
Loading
Loading
Loading
Loading
+98 −0
Original line number Diff line number Diff line
# How to use this file: http://go/approve-abi-break
# ABI freeze commit: ae37e86392ba5e33dc178c5ca16096029a2a3fe1

11 function symbol(s) removed
  'struct phy_device* of_phy_find_device(struct device_node*)'
  'int reset_control_status(struct reset_control*)'
  'void rproc_add_carveout(struct rproc*, struct rproc_mem_entry*)'
  'void* rproc_da_to_va(struct rproc*, u64, int)'
  'struct resource_table* rproc_elf_find_loaded_rsc_table(struct rproc*, const struct firmware*)'
  'int rproc_elf_load_rsc_table(struct rproc*, const struct firmware*)'
  'int rproc_elf_load_segments(struct rproc*, const struct firmware*)'
  'int rproc_elf_sanity_check(struct rproc*, const struct firmware*)'
  'struct rproc_mem_entry* rproc_mem_entry_init(struct device*, void*, dma_addr_t, int, u32, int(*)(struct rproc*, struct rproc_mem_entry*), int(*)(struct rproc*, struct rproc_mem_entry*), const char*, ...)'
  'struct rproc_mem_entry* rproc_of_resm_mem_entry_init(struct device*, u32, int, u32, const char*, ...)'
  'irqreturn_t rproc_vq_interrupt(struct rproc*, int)'

type 'struct elevator_mq_ops' changed
  member changed from 'bool(* bio_merge)(struct blk_mq_hw_ctx*, struct bio*, unsigned int)' to 'bool(* bio_merge)(struct request_queue*, struct bio*, unsigned int)'
    type changed from 'bool(*)(struct blk_mq_hw_ctx*, struct bio*, unsigned int)' to 'bool(*)(struct request_queue*, struct bio*, unsigned int)'
      pointed-to type changed from 'bool(struct blk_mq_hw_ctx*, struct bio*, unsigned int)' to 'bool(struct request_queue*, struct bio*, unsigned int)'
        parameter 1 type changed from 'struct blk_mq_hw_ctx*' to 'struct request_queue*'
          pointed-to type changed from 'struct blk_mq_hw_ctx' to 'struct request_queue'

type 'struct usbnet' changed
  member 'u64 android_kabi_reserved1' was removed
  member 'union { struct { u32 rx_speed; u32 tx_speed; }; struct { u64 android_kabi_reserved1; }; union { }; }' was added

type 'struct inet_connection_sock' changed
  member changed from 'struct { int enabled; int search_high; int search_low; int probe_size; u32 probe_timestamp; } icsk_mtup' to 'struct { int search_high; int search_low; int enabled; int probe_size; u32 probe_timestamp; } icsk_mtup'
    type changed from 'struct { int enabled; int search_high; int search_low; int probe_size; u32 probe_timestamp; }' to 'struct { int search_high; int search_low; int enabled; int probe_size; u32 probe_timestamp; }'
      byte size changed from 20 to 16
      2 members ('int search_high' .. 'int search_low') changed
        offset changed by -32
      member 'int probe_size' changed
        offset changed by -95
      member 'u32 probe_timestamp' changed
        offset changed by -32
  member 'u32 icsk_probes_tstamp' was added

type 'struct usbnet' changed
  member changed from 'union { struct { u32 rx_speed; u32 tx_speed; }; struct { u64 android_kabi_reserved1; } __UNIQUE_ID_android_kabi_hide213; union { }; }' to 'union { struct { u32 rx_speed; u32 tx_speed; }; struct { u64 android_kabi_reserved1; }; union { }; }'
    type changed from 'union { struct { u32 rx_speed; u32 tx_speed; }; struct { u64 android_kabi_reserved1; } __UNIQUE_ID_android_kabi_hide213; union { }; }' to 'union { struct { u32 rx_speed; u32 tx_speed; }; struct { u64 android_kabi_reserved1; }; union { }; }'
      member 'struct { u64 android_kabi_reserved1; } __UNIQUE_ID_android_kabi_hide213' was removed
      member 'struct { u64 android_kabi_reserved1; }' was added

type 'struct sock' changed
  member 'u64 android_kabi_reserved1' was removed
  member 'union { spinlock_t sk_peer_lock; struct { u64 android_kabi_reserved1; }; union { }; }' was added

type 'struct fib_rules_ops' changed
  member changed from 'bool(* suppress)(struct fib_rule*, struct fib_lookup_arg*)' to 'bool(* suppress)(struct fib_rule*, int, struct fib_lookup_arg*)'
    type changed from 'bool(*)(struct fib_rule*, struct fib_lookup_arg*)' to 'bool(*)(struct fib_rule*, int, struct fib_lookup_arg*)'
      pointed-to type changed from 'bool(struct fib_rule*, struct fib_lookup_arg*)' to 'bool(struct fib_rule*, int, struct fib_lookup_arg*)'
        parameter 2 type changed from 'struct fib_lookup_arg*' to 'int'
        parameter 3 of type 'struct fib_lookup_arg*' was added

type 'struct snd_pcm_runtime' changed
  byte size changed from 760 to 800
  member 'struct mutex buffer_mutex' was added
  member 'atomic_t buffer_accessing' was added

type 'struct snd_pcm_runtime' changed
  byte size changed from 792 to 800
  member 'atomic_t buffer_accessing' was added

function symbol changed from 'int hex_to_bin(char)' to 'int hex_to_bin(unsigned char)'
  type changed from 'int(char)' to 'int(unsigned char)'
    parameter 1 type changed from 'char' to 'unsigned char'

type 'struct tcp_sock' changed
  member 'u8 unused' was removed
  member 'u8 fastopen_client_fail' was added
  member 'u32 max_packets_seq' was removed
  member 'u32 cwnd_usage_seq' was added

type 'struct sk_buff' changed
  member 'u64 android_kabi_reserved1' was removed
  member 'union { struct { __u8 scm_io_uring; __u8 android_kabi_reserved1_padding1; __u16 android_kabi_reserved1_padding2; __u32 android_kabi_reserved1_padding3; }; struct { u64 android_kabi_reserved1; }; union { }; }' was added

type 'struct anon_vma' changed
  byte size changed from 88 to 104
  member 'unsigned long int num_children' was added
  member 'unsigned long int num_active_vmas' was added

function symbol changed from 'struct irq_domain* __irq_domain_add(struct fwnode_handle*, int, irq_hw_number_t, int, const struct irq_domain_ops*, void*)' to 'struct irq_domain* __irq_domain_add(struct fwnode_handle*, unsigned int, irq_hw_number_t, int, const struct irq_domain_ops*, void*)'
  type changed from 'struct irq_domain*(struct fwnode_handle*, int, irq_hw_number_t, int, const struct irq_domain_ops*, void*)' to 'struct irq_domain*(struct fwnode_handle*, unsigned int, irq_hw_number_t, int, const struct irq_domain_ops*, void*)'
    parameter 2 type changed from 'int' to 'unsigned int'

type 'struct perf_event' changed
  member 'unsigned int group_generation' was added

type 'struct usb_role_switch' changed
  member 'bool registered' was added

type 'struct tcp_sock' changed
  member 'u8 unused' was removed
  member 'u8 fastopen_client_fail' was added