tag | 5d02c66afc02a05e2b868335f3d09e5b29cce802 | |
---|---|---|
tagger | Howard Chen <howardsoc@google.com> | Mon Mar 06 16:23:59 2023 +0800 |
object | a1283c9e0b33bd1e4c96df6f5acac00658df44cc |
android13-5.10 September 2022 release 6 Artifacts: https://ci.android.com/builds/submitted/9672675/kernel_aarch64/latest
commit | a1283c9e0b33bd1e4c96df6f5acac00658df44cc | [log] [tgz] |
---|---|---|
author | Greg Kroah-Hartman <gregkh@google.com> | Wed Jan 11 14:46:15 2023 +0000 |
committer | Greg Kroah-Hartman <gregkh@google.com> | Wed Mar 01 11:29:07 2023 +0000 |
tree | caa20c2fcde71fabcf25ad32447f61d93ce902c3 | |
parent | c2a441ad0854e807cccdfcc1e222c71082e65099 [diff] |
ANDROID: struct io_uring ABI preservation hack for 5.10.162 changes In the 5.10.162 release, the io_uring code was synced with the version that is in the 5.15.y kernel tree in order to resolve a huge number of potential, and known, problems with the codebase. This makes for a more secure and easier-to-update-and-maintain 5.10.y kernel tree, so this is a great thing, however this caused some issues when it comes to the Android KABI preservation and checking tools. A number of the io_uring structures get used in other core kernel structures, only as "opaque" pointers, so there is not any real ABI breakage. But, due to the visibility of the structures going away, the CRC values of many scheduler variables and functions were changed. In order to preserve the CRC values, to prevent all device kernels to be forced to rebuild for no reason whatsoever from a functional point of view, we need to keep around the "old" io_uring structures for the CRC calculation only. This is done by the following definitions of struct io_identity and struct io_uring_task which will only be visible when the CRC calculation build happens, not in any functional kernel build. Yes, this all is a horrible hack, and these really are not the true structures that any code uses, but so life is in the world of stable apis. Note, libabigail will show a difference in structures here, that is safe, and the .xml file is updated to reflect this: type 'struct task_struct' changed member 'union { void * pf_io_worker; struct { u64 android_kabi_reserved1; }; union { }; }' was added member 'u64 android_kabi_reserved1' was removed type 'struct io_uring_task' changed byte size changed from 176 to 160 member 'int cached_refs' was added 2 members ('struct xarray xa' .. 'struct wait_queue_head wait') changed offset changed by 64 member changed from 'struct file * last' to 'const struct io_ring_ctx * last' offset changed from 320 to 384 type changed from 'struct file *' to 'const struct io_ring_ctx *' pointed-to type changed from 'struct file' to 'const struct io_ring_ctx' qualifier const added underlying type changed from 'struct file' to 'struct io_ring_ctx' member 'struct io_wq * io_wq' was added member 'struct percpu_counter inflight' changed offset changed by 128 member 'atomic_t inflight_tracked' was added member 'struct io_identity __identity' was removed member 'struct io_identity * identity' was removed member 'atomic_t in_idle' changed offset changed by -480 member 'spinlock_t task_lock' was added member 'struct io_wq_work_list task_list' was added member 'struct callback_head task_work' was added member 'bool task_running' was added member 'bool sqpoll' was removed Bug: 161946584 Bug: 268174392 Fixes: 623d867cee20 ("UPSTREAM: io_uring: import 5.15-stable io_uring") Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: I2294f220ae78fe9aa32ee25b81829ae765e9deb2
BEST: Make all of your changes to upstream Linux. If appropriate, backport to the stable releases. These patches will be merged automatically in the corresponding common kernels. If the patch is already in upstream Linux, post a backport of the patch that conforms to the patch requirements below.
EXPORT_SYMBOL_GPL()
require an in-tree modular driver that uses the symbol -- so include the new driver or changes to an existing driver in the same patchset as the export.LESS GOOD: Develop your patches out-of-tree (from an upstream Linux point-of-view). Unless these are fixing an Android-specific bug, these are very unlikely to be accepted unless they have been coordinated with kernel-team@android.com. If you want to proceed, post a patch that conforms to the patch requirements below.
script/checkpatch.pl
UPSTREAM:
, BACKPORT:
, FROMGIT:
, FROMLIST:
, or ANDROID:
.Change-Id:
tag (see https://gerrit-review.googlesource.com/Documentation/user-changeid.html)Bug:
tag.Signed-off-by:
tag by the author and the submitterAdditional requirements are listed below based on patch type
UPSTREAM:
, BACKPORT:
UPSTREAM:
.(cherry picked from commit ...)
lineimportant patch from upstream This is the detailed description of the important patch Signed-off-by: Fred Jones <fred.jones@foo.org>
- then Joe Smith would upload the patch for the common kernel as
UPSTREAM: important patch from upstream This is the detailed description of the important patch Signed-off-by: Fred Jones <fred.jones@foo.org> Bug: 135791357 Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01 (cherry picked from commit c31e73121f4c1ec41143423ac6ce3ce6dafdcec1) Signed-off-by: Joe Smith <joe.smith@foo.org>
BACKPORT:
instead of UPSTREAM:
.UPSTREAM:
(cherry picked from commit ...)
lineBACKPORT: important patch from upstream This is the detailed description of the important patch Signed-off-by: Fred Jones <fred.jones@foo.org> Bug: 135791357 Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01 (cherry picked from commit c31e73121f4c1ec41143423ac6ce3ce6dafdcec1) [joe: Resolved minor conflict in drivers/foo/bar.c ] Signed-off-by: Joe Smith <joe.smith@foo.org>
FROMGIT:
, FROMLIST:
,FROMGIT:
(cherry picked from commit <sha1> <repo> <branch>)
. This must be a stable maintainer branch (not rebased, so don't use linux-next
for example).BACKPORT: FROMGIT:
important patch from upstream This is the detailed description of the important patch Signed-off-by: Fred Jones <fred.jones@foo.org>
- then Joe Smith would upload the patch for the common kernel as
FROMGIT: important patch from upstream This is the detailed description of the important patch Signed-off-by: Fred Jones <fred.jones@foo.org> Bug: 135791357 (cherry picked from commit 878a2fd9de10b03d11d2f622250285c7e63deace https://git.kernel.org/pub/scm/linux/kernel/git/foo/bar.git test-branch) Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01 Signed-off-by: Joe Smith <joe.smith@foo.org>
FROMLIST:
Link:
tag with a link to the submittal on lore.kernel.orgBug:
tag with the Android bug (required for patches not accepted into a maintainer tree)BACKPORT: FROMLIST:
FROMLIST: important patch from upstream This is the detailed description of the important patch Signed-off-by: Fred Jones <fred.jones@foo.org> Bug: 135791357 Link: https://lore.kernel.org/lkml/20190619171517.GA17557@someone.com/ Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01 Signed-off-by: Joe Smith <joe.smith@foo.org>
ANDROID:
ANDROID:
Fixes:
tag that cites the patch with the bugANDROID: fix android-specific bug in foobar.c This is the detailed description of the important fix Fixes: 1234abcd2468 ("foobar: add cool feature") Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01 Signed-off-by: Joe Smith <joe.smith@foo.org>
ANDROID:
Bug:
tag with the Android bug (required for android-specific features)