On Mon,  1 Feb 2016 16:35:52 -0700
Jeffrey Merkey <[email protected]> wrote:
> ---
>  include/linux/printk.h | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/include/linux/printk.h b/include/linux/printk.h
> index 51dd6b8..dcfb270 100644
> --- a/include/linux/printk.h
> +++ b/include/linux/printk.h
> @@ -252,8 +252,16 @@ extern asmlinkage void dump_stack(void) __cold;
>   * and other debug macros are compiled out unless either DEBUG is defined
>   * or CONFIG_DYNAMIC_DEBUG is set.
>   */
> +#ifdef CONFIG_DEBUG_WARN
> +#define pr_emerg(fmt, ...) \
> +({                                                           \
> +     printk(KERN_EMERG pr_fmt(fmt), ##__VA_ARGS__);          \
> +     BUG();                                                  \

This look rather heavy handed for a debug feature. This will crash any
kernel on a pr-emerg(), similar to a panic on warning. Not only that,
for cases that cal pr_emerg() more than once, it crashes on the first
instance.

What about adding a condition that can be set set in /proc/sys/kernel/
A file called something like crash_on_print_emerg ?

        BUG_ON(crash_on_pr_emerg);

-- Steve

> +})
> +#else
>  #define pr_emerg(fmt, ...) \
>       printk(KERN_EMERG pr_fmt(fmt), ##__VA_ARGS__)
> +#endif
>  #define pr_alert(fmt, ...) \
>       printk(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__)
>  #define pr_crit(fmt, ...) \

Reply via email to