On Tue, Jul 7, 2026 at 2:58 PM Bartosz Golaszewski
<[email protected]> wrote:
>
> CONFIG_KUNIT is a tristate symbol but the warning suppression code in
> lib/bug.c is only built if it's built-in. Use IS_ENABLE(CONFIG_KUNIT) to
> enable it for a loadable kunit module as well. When using a plain #ifdef,
> the suppressions only work if kunit is built-in.
>
> Cc: [email protected]
> Fixes: 85347718ab0d ("bug/kunit: Core support for suppressing warning
> backtraces")
> Signed-off-by: Bartosz Golaszewski <[email protected]>
> ---
> lib/bug.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/bug.c b/lib/bug.c
> index 292420f45811..b9820a0226f5 100644
> --- a/lib/bug.c
> +++ b/lib/bug.c
> @@ -219,7 +219,7 @@ static enum bug_trap_type __report_bug(struct bug_entry
> *bug, unsigned long buga
> no_cut = bug->flags & BUGFLAG_NO_CUT_HERE;
> has_args = bug->flags & BUGFLAG_ARGS;
>
> -#ifdef CONFIG_KUNIT
> +#if IS_ENABLED(CONFIG_KUNIT)
Hello Bartosz,
Thanks for the fix! While it is correct, I think we could just drop
the guard completely. kunit_is_suppressed_warning() already has a
correct stub in the #else branch of include/kunit/test-bug.h when
CONFIG_KUNIT is not enabled:
static inline bool kunit_is_suppressed_warning(bool count) { return false; }
With it, the check in lib/bug.c is redundant.
BR,
Albert
> /*
> * Before the once logic so suppressed warnings do not consume
> * the single-fire budget of WARN_ON_ONCE().
> --
> 2.47.3
>