On Mon, May 26, 2025 at 01:27:51PM +0000, Alessandro Carminati wrote:

>  #define __WARN()             __WARN_FLAGS(BUGFLAG_TAINT(TAINT_WARN))
>  #define __WARN_printf(taint, arg...) do {                            \
> -             instrumentation_begin();                                \
> -             __warn_printk(arg);                                     \
> -             __WARN_FLAGS(BUGFLAG_NO_CUT_HERE | BUGFLAG_TAINT(taint));\
> -             instrumentation_end();                                  \
> +             if (!KUNIT_IS_SUPPRESSED_WARNING(__func__)) {           \
> +                     instrumentation_begin();                        \
> +                     __warn_printk(arg);                             \
> +                     __WARN_FLAGS(BUGFLAG_NO_CUT_HERE |              \
> +                             BUGFLAG_TAINT(taint));                  \
> +                     instrumentation_end();                          \
> +             }                                                       \
>       } while (0)
>  #define WARN_ON_ONCE(condition) ({                           \
>       int __ret_warn_on = !!(condition);                      \
> -     if (unlikely(__ret_warn_on))                            \
> +     if (unlikely(__ret_warn_on) && !KUNIT_IS_SUPPRESSED_WARNING(__func__))  
> \
>               __WARN_FLAGS(BUGFLAG_ONCE |                     \
>                            BUGFLAG_TAINT(TAINT_WARN));        \
>       unlikely(__ret_warn_on);                                \
> @@ -121,7 +130,7 @@ extern __printf(1, 2) void __warn_printk(const char *fmt, 
> ...);
>  #ifndef WARN_ON
>  #define WARN_ON(condition) ({                                                
> \
>       int __ret_warn_on = !!(condition);                              \
> -     if (unlikely(__ret_warn_on))                                    \
> +     if (unlikely(__ret_warn_on) && !KUNIT_IS_SUPPRESSED_WARNING(__func__))  
> \
>               __WARN();                                               \
>       unlikely(__ret_warn_on);                                        \
>  })
> @@ -138,7 +147,7 @@ extern __printf(1, 2) void __warn_printk(const char *fmt, 
> ...);
>  
>  #define WARN_TAINT(condition, taint, format...) ({                   \
>       int __ret_warn_on = !!(condition);                              \
> -     if (unlikely(__ret_warn_on))                                    \
> +     if (unlikely(__ret_warn_on) && !KUNIT_IS_SUPPRESSED_WARNING(__func__))  
> \
>               __WARN_printf(taint, format);                           \
>       unlikely(__ret_warn_on);                                        \
>  })
> @@ -157,8 +166,10 @@ extern __printf(1, 2) void __warn_printk(const char 
> *fmt, ...);
>  #else /* !CONFIG_BUG */
>  #ifndef HAVE_ARCH_BUG
>  #define BUG() do {           \
> -     do {} while (1);        \
> -     unreachable();          \
> +     if (!KUNIT_IS_SUPPRESSED_WARNING(__func__)) {                   \
> +             do {} while (1);                                        \
> +             unreachable();                                          \
> +     }                                                               \
>  } while (0)
>  #endif

NAK

This is again doing it wrong -- this will bloat every frigging bug/warn
site for no reason. 

Like I said before; you need to do this on the report_bug() size of
things.

Reply via email to