Re: [PATCH v2] bug: fix warning suppressions with kunit built as module
From: David Gow
Date: Wed Jul 08 2026 - 06:04:25 EST
Le 08/07/2026 à 5:54 PM, Bartosz Golaszewski a écrit :
> CONFIG_KUNIT is a tristate symbol but the warning suppression code in
> lib/bug.c is only built if it's built-in due to it using a plain #ifdef,
> rendering warning suppressions broken for kunit build as loadable module.
>
> kunit_is_suppressed_warning() already has a stub for when kunit is
> disabled so drop that guard entirely.
>
> Suggested-by: Albert Esteve <aesteve@xxxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx
> Fixes: 85347718ab0d ("bug/kunit: Core support for suppressing warning backtraces")
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxxxxxxxx>
> ---
> Changes in v2:
> - drop the guard entirely instead of switching to IS_ENABLED()
>
Thanks very much. Works well here.
Reviewed-by: David Gow <david@xxxxxxxxxxxx>
Happy to take this via kselftest/kunit, but if you'd prefer it go in via
mm-nonmm, that's fine too.
Cheers,
-- David
> lib/bug.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/lib/bug.c b/lib/bug.c
> index 292420f45811..7c1c2c27f58e 100644
> --- a/lib/bug.c
> +++ b/lib/bug.c
> @@ -219,14 +219,12 @@ 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
> /*
> * Before the once logic so suppressed warnings do not consume
> * the single-fire budget of WARN_ON_ONCE().
> */
> if (warning && kunit_is_suppressed_warning(true))
> return BUG_TRAP_TYPE_WARN;
> -#endif
>
> disable_trace_on_warning();
>