This reverts commit 4f35cec76058557d9eaec0d501d03c7657eb56b4 and does so
in an abi-safe way.
This is done by adding the new fields only to the end of the structure
and this structure is only passed around to other functions as a
pointer, the internal structure layout is only touched by the core
kernel, so adding it to the end is safe.
ABI differences manually updated:
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 anon_vma at rmap.h:29:1' changed:
type size changed from 704 to 832 (in bits)
2 data member insertions:
'unsigned long int num_children', at offset 704 (in bits) at rmap.h:70:1
'unsigned long int num_active_vmas', at offset 768 (in bits) at rmap.h:72:1
761 impacted interfaces
Bug: 260678056
Bug: 253167854
Change-Id: Ib1d45625cbc2e0b21330ca3dc2aa7aff34666d31
Signed-off-by: Lee Jones <joneslee@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
(cherry picked from commit d3e1a50cba092fa9c56fc642ee74f360c4b40a17)
With the latest Qualcomm release, the kernel module "msm_adreno.ko"
added the new requirement to exported kernel symbol "check_zeroed_user".
Add the symbol into symbol list to make it able to boot with android
common kernel.
Leaf changes summary: 1 artifact changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 1 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
1 Added function:
[A] 'function int check_zeroed_user(void*, size_t)'
Bug: 261681571
Change-Id: If6e125e0f1d192523e9c36628db4cfe955ad23c4
Signed-off-by: JohnnLee <johnnlee@google.com>
With the commit 1a4762141c ("rpmsg: qcom: glink: replace strncpy() with
strscpy_pad()"), the kernel module "qcom_glink_native.ko" added the new
requirement to exported kernel symbol "strscpy_pad". Add the symbol into
symbol list to make it able to boot with android common kernel.
Leaf changes summary: 1 artifact changed (1 filtered out)
Changed leaf types summary: 0 (1 filtered out) leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 1 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
1 Added function:
[A] 'function long int strscpy_pad(char*, const char*, unsigned long int)'
Bug: 262180725
Change-Id: I5aa8cebc72d7989d353290bdef0c0ddb65c6de94
Signed-off-by: JohnnLee <johnnlee@google.com>
A portion of the fix for CVE-2022-1048, commit 9cb6c40a6e ("ALSA: pcm:
Fix races among concurrent hw_params and hw_free calls") and
40f4cffbe1 ("ALSA: pcm: Fix potential AB/BA lock with buffer_mutex and
mmap_lock"), caused an ABI break by adding a new field to struct
snd_pcm_runtime. Because we have to keep this new addition, it is safe
to move it to the end of the structure because this is only ever created
by the sound core, and referenced as a pointer everywhere else.
This does require a .xml update also to handle the increased structure
size:
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 snd_pcm_runtime at pcm.h:367:1' changed:
type size changed from 6144 to 6464 (in bits)
2 data member insertions:
'mutex buffer_mutex', at offset 6144 (in bits) at pcm.h:454:1
'atomic_t buffer_accessing', at offset 6400 (in bits) at pcm.h:455:1
59 impacted interfaces
Bug: 161946584
Fixes: 9cb6c40a6e ("ALSA: pcm: Fix races among concurrent hw_params and hw_free calls")
Fixes: 40f4cffbe1 ("ALSA: pcm: Fix potential AB/BA lock with buffer_mutex and mmap_lock")
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I525799616e06c1d2c5513821a3361e99dcb7e553
Commit 0f509c4428 ("hex2bin: make the function hex_to_bin
constant-time") in 4.19.242 changed the signature of the hex_to_bin()
function to fix a key leak attack vector. This is not an abi break as
older modules that use the function will still work properly, and the
CRC is preserved, but this resolves any issues going forward as well.
Leaf changes summary: 1 artifact changed (1 filtered out)
Changed leaf types summary: 0 (1 filtered out) leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 1 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
1 function with some sub-type change:
[C] 'function int hex_to_bin(char)' at hexdump.c:56:1 has some sub-type changes:
parameter 1 of type 'char' changed:
type name changed from 'char' to 'unsigned char'
type size hasn't changed
Fixes: 0f509c4428 ("hex2bin: make the function hex_to_bin constant-time")
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I26b2283300369049abc831072df9a5ace3e770d1
There is an abi break in the 4.19.221 release with regards to struct
Qdisc'. A new variable is added to the structure, but the size does not
change and the variable is at the end of the structure, so it is safe to
just hide the change from the CRC check and update the .xml file as
nothing has to be rebuilt.
(note, DRM change below is due to .xml file update and difference
between doing LTO=full and LTO=thin, this update was with LTO=full).
Leaf changes summary: 2 artifacts changed
Changed leaf types summary: 2 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 Qdisc at sch_generic.h:57:1' changed:
type size hasn't changed
1 data member insertion:
'callback_head rcu', at offset 2112 (in bits) at sch_generic.h:112:1
1995 impacted interfaces
'struct drm_crtc_helper_funcs at drm_modeset_helper_vtables.h:59:1' changed (indirectly):
type size hasn't changed
there are data member changes:
type 'int (drm_crtc*, drm_framebuffer*, int, int, enum mode_set_atomic)*' of 'drm_crtc_helper_funcs::mode_set_base_atomic' changed:
pointer type changed from: 'int (drm_crtc*, drm_framebuffer*, int, int, enum mode_set_atomic)*' to: 'int (drm_crtc*, drm_framebuffer*, int, int, enum mode_set_atomic)*'
189 impacted interfaces
Bug: 173788806
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I5b9cd74845855f6699657500ac74b8129564ccdd
Nothing changed that affects the running api, but libabigail has some
issues with anonymous unions so we need to update the .xml file to let
it know all is well here.
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 sock at sock.h:328:1' changed:
type size hasn't changed
there are data member changes:
data member u64 android_kabi_reserved1 at offset 5888 (in bits) became anonymous data member 'union {spinlock_t sk_peer_lock; struct {u64 android_kabi_reserved1;}; union {};}'
864 impacted interfaces
Fixes: ddf077f140 ("ANDROID: Fix up KABI breakage in 4.19.209 in struct sock")
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ia79e9095e2cb88208b6bb6a83ef2579c59d9fd64
Add the symbols needed for virtio_console and hci_vhci.
Bug: 191700886
Signed-off-by: J. Avila <elavila@google.com>
Change-Id: I96ee5990cdfa2da5fe0d1eaaf610b193a6b7b1bb
Kernel modules of qpnp-smb5-charger.ko, swr_ctrl_dlkm.ko and msm_drm.ko
added new requirements to exported kernel symbols. Add these symbols
into symbol list to make it able to boot with android common kernel.
Leaf changes summary: 4 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 4 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
4 Added functions:
[A] 'function ktime_t alarm_expires_remaining(const alarm*)'
[A] 'function bool drm_edid_is_valid(edid*)'
[A] 'function unsigned long int pm_runtime_autosuspend_expiration(device*)'
[A] 'function void tracing_off()'
Bug: 185091725
Signed-off-by: Lucas Wei <lucaswei@google.com>
Change-Id: Iadd6de18f536a3763becf1c62e152124be9ef405
Signed-off-by: Will McVicker <willmcvicker@google.com>
This is an incompatible ABI XML version change.
Bitfield offsets are now correct.
Bug: 183612421
Change-Id: I483c591294ccdf776a89f6839be4d76f86d7dd39
Signed-off-by: Giuliano Procida <gprocida@google.com>
The futex changes in 4.19.172 required some additions to struct
task_struct, which of course, is a structure used by just about
everyone.
To preserve the abi, do some gyrations with the reserved fields in order
to handle the growth of the structure. Given that we are adding a
larger structure than a pointer, carve out a chunk of reserved fields
from the block we were reserving.
These changes fix the genksyms issues, but libabigail is smarter than
that, so we also need to update the .xml file to make it happy with this
change.
The results of libabigail is:
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 task_struct at sched.h:647:1' changed:
type size hasn't changed
3 data member deletions:
'u64 task_struct::android_kabi_reserved4', at offset 22592 (in bits) at sched.h:1300:1
'u64 task_struct::android_kabi_reserved5', at offset 22656 (in bits) at sched.h:1301:1
'u64 task_struct::android_kabi_reserved6', at offset 22720 (in bits) at sched.h:1302:1
there are data member changes:
data member u64 task_struct::android_kabi_reserved2 at offset 22464 (in bits) became anonymous data member 'union {unsigned int futex_state; struct {u64 android_kabi_reserved2;} __UNIQUE_ID_android_kabi_hide48; union {};}'
type 'typedef u64' of 'task_struct::android_kabi_reserved3' changed:
entity changed from 'typedef u64' to 'struct mutex' at mutex.h:53:1
type size changed from 64 to 256 (in bits)
and name of 'task_struct::android_kabi_reserved3' changed to 'task_struct::futex_exit_mutex' at sched.h:1313:1
1955 impacted interfaces
Bug: 161946584
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Iab623aa5441c1d11e2dc4eb77c7153e4e9517429
Recover symbol of `get_next_event_cpu` which was removed
from a3bf0efb17 ("ANDROID: Add allowed symbols from sctp.ko
and qrtr.ko") frozen ABI.
Bug: 173765853
Signed-off-by: Lucas Wei <lucaswei@google.com>
Change-Id: Ib61e8f977047e2e61a1a0e8014af942e7d1d1b67
This reverts commit 4a1753307d.
Bug: 169084168
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: Ie72f9b8d295b9ba5f72d0befd7687cd4607e18d6
Signed-off-by: Will McVicker <willmcvicker@google.com>
This adds missing anonymous to union types, creating some one-time
churn.
Bug: 167563393
Change-Id: I08f55d48793870c6a82ff2c76d3460733ffdbe41
Signed-off-by: Matthias Maennich <maennich@google.com>
This upgrades some types from declaration-only tracking to full type
tracking, but creates this one-time churn.
Bug: 158736583
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: I39f778d7660fb4065eec2ecb6dd1ed47816e25b6
Libabigail learned to accept 'symbol_list' as a valid suffix for symbol
list sections. Hence make use of it consistently.
Bug: 162536543
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: I1454b0068769c9e57a533dafb6267e63adb7ceb0
This is a one-off change that updates the type ids of anonymous
structs and unions to a more stable id.
Bug: 163532421
Change-Id: Ie23e7891f05b5521b1da8e0af9089e0fa1afe617
Signed-off-by: Giuliano Procida <gprocida@google.com>
Leaf changes summary: 686 artifacts changed (67 filtered out)
Changed leaf types summary: 2 (1 filtered out) leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 678 Changed (64 filtered out), 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 6 Changed (2 filtered out), 0 Added variable
'struct cgroup at cgroup-defs.h:320:1' changed:
type size changed from 17536 to 17856 (in bits)
4 data member insertions:
'cgroup_freezer_state cgroup::freezer', at offset 17504 (in bits) at cgroup-defs.h:476:1
'u64 cgroup::android_kabi_reserved1', at offset 17664 (in bits) at cgroup-defs.h:478:1
'u64 cgroup::android_kabi_reserved2', at offset 17728 (in bits) at cgroup-defs.h:479:1
'u64 cgroup::android_kabi_reserved3', at offset 17792 (in bits) at cgroup-defs.h:480:1
there are data member changes:
'int cgroup::ancestor_ids[]' offset changed from 17504 to 17856 (in bits) (by +352 bits)
1553 impacted interfaces
'struct cgroup_root at cgroup-defs.h:465:1' changed (indirectly):
type size changed from 51392 to 51712 (in bits)
there are data member changes:
type 'struct cgroup' of 'cgroup_root::cgrp' changed, as reported earlier
'int cgroup_root::cgrp_ancestor_id_storage' offset changed from 17664 to 17984 (in bits) (by +320 bits)
'atomic_t cgroup_root::nr_cgrps' offset changed from 17696 to 18016 (in bits) (by +320 bits)
'list_head cgroup_root::root_list' offset changed from 17728 to 18048 (in bits) (by +320 bits)
'unsigned int cgroup_root::flags' offset changed from 17856 to 18176 (in bits) (by +320 bits)
'idr cgroup_root::cgroup_idr' offset changed from 17920 to 18240 (in bits) (by +320 bits)
'char cgroup_root::release_agent_path[4096]' offset changed from 18112 to 18432 (in bits) (by +320 bits)
'char cgroup_root::name[64]' offset changed from 50880 to 51200 (in bits) (by +320 bits)
1553 impacted interfaces
Bug: 163547360
Signed-off-by: Marco Ballesio <balejs@google.com>
Change-Id: I88cae7b0e417f1c37eeee7f430c412d4d29b84de
Leaf changes summary: 26 artifacts changed
Changed leaf types summary: 2 leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 24 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
24 functions with some sub-type change:
...
'struct snd_usb_endpoint at card.h:53:1' changed:
type size changed from 44544 to 44800 (in bits)
4 data member insertions:
'u64 snd_usb_endpoint::android_kabi_reserved1', at offset 44544 (in bits) at card.h:112:1
'u64 snd_usb_endpoint::android_kabi_reserved2', at offset 44608 (in bits) at card.h:113:1
'u64 snd_usb_endpoint::android_kabi_reserved3', at offset 44672 (in bits) at card.h:114:1
'u64 snd_usb_endpoint::android_kabi_reserved4', at offset 44736 (in bits) at card.h:115:1
2 impacted interfaces
'struct usb_gadget at gadget.h:465:1' changed:
type size changed from 8512 to 8768 (in bits)
4 data member insertions:
'u64 usb_gadget::android_kabi_reserved1', at offset 8512 (in bits) at gadget.h:503:1
'u64 usb_gadget::android_kabi_reserved2', at offset 8576 (in bits) at gadget.h:504:1
'u64 usb_gadget::android_kabi_reserved3', at offset 8640 (in bits) at gadget.h:505:1
'u64 usb_gadget::android_kabi_reserved4', at offset 8704 (in bits) at gadget.h:506:1
22 impacted interfaces
Bug: 151154716
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Signed-off-by: Will McVicker <willmcvicker@google.com>
Change-Id: I8013f98b7d3719e8467e33cf56a773503d4b6a93
A recent update of libabigail introduces some more tracking options
(ELF variable sizes, aliased symbols, CRC values). Unfortunately this is
incompatible with the current representation. Hence update.
The update introduces new CRC values and corrects the symbol lists to
contain only symbols that are part of the ksymtab.
The symbols of the modules are now listed along with the symbols of
vmlinux. That is a benign flaw that does not harm analysis and will be
corrected later.
Bug: 155140830
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: If363c5629a94844e35a9c7de87f89f2acd091a81
This updates the representation incorporating the latest (ABI
compatible) source code changes.
It also helps reducing the size of the update with the new libabigail
version coming up.
Bug: 155140830
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: I03db0b0460062ba3106c5bea261b8a715051a923
It's good to move the abi files out of the root kernel directory, so
move them to android/ to make it obvious these are add-on things, not
anything that is upstream.
Bug: 155573384
Cc: Matthias Maennich <maennich@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I9f6c2269a1c4e8e4233971adc805cb7584d455f9