Re: Print taint info in more places.

Matt Mackall
2007-12-14T15:39:45Z

On Thu, Dec 13, 2007 at 08:30:41PM -0500, Dave Jones wrote:
> #ifndef HAVE_ARCH_BUG
> #define BUG() do { \
> - printk("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __FUNCTION__); \
> + printk(KERN_ERR "BUG: failure at %s:%d/%s()! (%s)\n",
> + __FILE__, __LINE__, __FUNCTION__, print_tainted()); \
> panic("BUG!"); \
> } while (0)

Might as well make this inline too, no?

> #endif
> @@ -32,13 +37,11 @@ struct bug_entry {
> #endif
>
> #ifndef HAVE_ARCH_WARN_ON
> +void out_of_line_warnon(char *file, unsigned int line, const char *func);

How about __warn_on?

> diff --git a/init/main.c b/init/main.c
> index 80b04b6..b1fad76 100644
> --- a/init/main.c
> +++ b/init/main.c
> @@ -855,3 +855,11 @@ static int __init kernel_init(void * unused)
> init_post();
> return 0;
> }
> +
> +void out_of_line_warnon(char *file, unsigned int line, const char *func)

Might as well make *file const too.

> diff --git a/kernel/panic.c b/kernel/panic.c
> index 6f6e03e..198fc58 100644
> --- a/kernel/panic.c
> +++ b/kernel/panic.c
> @@ -173,6 +173,7 @@ const char *print_tainted(void)
> snprintf(buf, sizeof(buf), "Not tainted");
> return(buf);
> }
> +EXPORT_SYMBOL(print_tainted);

Looks like you've got two patches here..

--
Mathematics is the supreme nostalgia of our time.