[6.3][regression] after commit 7170b7ed6acbde523c5d362c8978c60df4c30f30 my system stuck in initramfs forever

From: Mikhail Gavrilov
Date: Sat Feb 25 2023 - 08:51:50 EST


Hi,
new kernel release cycle returning with new bugs
Today my system got stuck in initramfs environment after updating to
commit d2980d8d826554fa6981d621e569a453787472f8.

I still do not understand how to configure the network inside the
initramfs environment to grab the logs.
Since an attempt to rebuild the initramfs with all modules (dracut
--no-hostonly --force) leads to the stuck initramfs environment and
impossible entering into initramfs console.

But I can bisect the problem and bisection blames this commit:

❯ git bisect good
7170b7ed6acbde523c5d362c8978c60df4c30f30 is the first bad commit
commit 7170b7ed6acbde523c5d362c8978c60df4c30f30
Author: David Gow <davidgow@xxxxxxxxxx>
Date: Sat Jan 28 15:10:07 2023 +0800

kunit: Add "hooks" to call into KUnit when it's built as a module

KUnit has several macros and functions intended for use from non-test
code. These hooks, currently the kunit_get_current_test() and
kunit_fail_current_test() macros, didn't work when CONFIG_KUNIT=m.

In order to support this case, the required functions and static data
need to be available unconditionally, even when KUnit itself is not
built-in. The new 'hooks.c' file is therefore always included, and has
both the static key required for kunit_get_current_test(), and a table
of function pointers in struct kunit_hooks_table. This is filled in with
the real implementations by kunit_install_hooks(), which is kept in
hooks-impl.h and called when the kunit module is loaded.

This can be extended for future features which require similar
"hook" behaviour, such as static stubs, by simply adding new entries to
the struct, and the appropriate code to set them.

Fixed white-space errors during commit:
Shuah Khan <skhan@xxxxxxxxxxxxxxxxxxx>

Resolved merge conflicts with:
db105c37a4d6 ("kunit: Export kunit_running()")
This patch supersedes the above.
Shuah Khan <skhan@xxxxxxxxxxxxxxxxxxx>

Signed-off-by: David Gow <davidgow@xxxxxxxxxx>
Reviewed-by: Rae Moar <rmoar@xxxxxxxxxx>
Reviewed-by: Brendan Higgins <brendanhiggins@xxxxxxxxxx>
Signed-off-by: Shuah Khan <skhan@xxxxxxxxxxxxxxxxxxx>

Documentation/dev-tools/kunit/usage.rst | 15 ++++++---------
include/kunit/test-bug.h | 28 ++++++++++------------------
lib/Makefile | 8 ++++++++
lib/kunit/Makefile | 3 +++
lib/kunit/hooks-impl.h | 27 +++++++++++++++++++++++++++
lib/kunit/hooks.c | 21 +++++++++++++++++++++
lib/kunit/test.c | 15 +++++++--------
7 files changed, 82 insertions(+), 35 deletions(-)
create mode 100644 lib/kunit/hooks-impl.h
create mode 100644 lib/kunit/hooks.c

Unfortunately I couldn't revert this commit staying on
d2980d8d826554fa6981d621e569a453787472f8 because of conflicts:
❯ git revert 7170b7ed6acbde523c5d362c8978c60df4c30f30 -n
Auto-merging include/kunit/test-bug.h
CONFLICT (content): Merge conflict in include/kunit/test-bug.h
Auto-merging lib/Makefile
Auto-merging lib/kunit/Makefile
CONFLICT (modify/delete): lib/kunit/hooks-impl.h deleted in parent of
7170b7ed6acb (kunit: Add "hooks" to call into KUnit when it's built as
a module) and modified in HEAD. Version HEAD of
lib/kunit/hooks-impl.h left in tree.
Auto-merging lib/kunit/test.c
CONFLICT (content): Merge conflict in lib/kunit/test.c
error: could not revert 7170b7ed6acb... kunit: Add "hooks" to call
into KUnit when it's built as a module
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'

--
Best Regards,
Mike Gavrilov.