From: Danilo Krummrich <dakr@kernel.org>
To: robh@kernel.org, saravanak@kernel.org
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
Danilo Krummrich <dakr@kernel.org>
Subject: [PATCH] of: unittest: Require BUG_ON_DATA_CORRUPTION to be disabled
Date: Thu, 29 Oct 2026 23:44:24 +0100 [thread overview]
Message-ID: <20261029224843.1155201-1-dakr@kernel.org> (raw)
With CONFIG_OF_UNITTEST=y and CONFIG_BUG_ON_DATA_CORRUPTION=y, the
machine no longer boots after commit 5b5224220747 ("refcount: Use
CONFIG_BUG_ON_DATA_CORRUPTION for UAF-related errors").
of_unittest_lifecycle() deliberately calls of_node_put() after the
node's reference count has reached zero. The test expects a warning and
continues to check that a subsequent put does not produce another
warning. With BUG_ON_DATA_CORRUPTION enabled, refcount underflow now
triggers BUG() instead. This panics the kernel during boot:
kernel BUG at lib/refcount.c:37!
Oops: invalid opcode: 0000 [#1] SMP NOPTI
CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Tainted: G N 7.3.0+ #14 PREEMPT(full)
RIP: 0010:refcount_warn_saturate+0x89/0x90
Call Trace:
of_unittest_lifecycle+0x158/0x310
of_unittest+0x105/0x130
do_one_initcall+0x127/0x350
do_initcall_level+0x7c/0xe0
do_initcalls+0x59/0xa0
kernel_init_freeable+0x118/0x1a0
kernel_init+0x1f/0x140
Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
Make OF_UNITTEST depend on !BUG_ON_DATA_CORRUPTION and explain the
restriction in its help text.
Fixes: 5b5224220747 ("refcount: Use CONFIG_BUG_ON_DATA_CORRUPTION for UAF-related errors")
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
---
Alternatively, we could also just remove the refcount underflow tests. It seems
they are not really testing anything OF specific, but rather test the refcount
implementation.
---
drivers/of/Kconfig | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/of/Kconfig b/drivers/of/Kconfig
index 50697cc3b07e..316e32b35b17 100644
--- a/drivers/of/Kconfig
+++ b/drivers/of/Kconfig
@@ -21,6 +21,7 @@ if OF
config OF_UNITTEST
bool "Device Tree runtime unit tests"
depends on OF_EARLY_FLATTREE
+ depends on !BUG_ON_DATA_CORRUPTION
select IRQ_DOMAIN
select OF_RESOLVE
help
@@ -32,7 +33,9 @@ config OF_UNITTEST
will taint the kernel with TAINT_TEST. The tests will cause ERROR and
WARNING messages to print on the console. The tests will cause stack
traces to print on the console. It is possible that the tests will
- leave the devicetree in a corrupted state.
+ leave the devicetree in a corrupted state. BUG_ON_DATA_CORRUPTION
+ must be disabled because the tests deliberately trigger refcount
+ underflows and expect execution to continue.
The unittest output will be verbose. Copy the output to a file
via capturing the console output or via the dmesg command. Process
base-commit: a287f97d4256b5f5527f5b5a54f8ada55e1482c7
--
2.56.0
reply other threads:[~2026-10-29 22:48 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261029224843.1155201-1-dakr@kernel.org \
--to=dakr@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=robh@kernel.org \
--cc=saravanak@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.