From: Andrew Morton <akpm@linux-foundation.org>
To: schwidefsky@de.ibm.com
Cc: torvalds@linux-foundation.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC] Add PR_PREFIX to pr_xyz macros.
Date: Fri, 14 Nov 2008 13:32:13 -0800 [thread overview]
Message-ID: <20081114133213.ac98ba0f.akpm@linux-foundation.org> (raw)
In-Reply-To: <1226521003.2222.8.camel@localhost>
On Wed, 12 Nov 2008 21:16:43 +0100
Martin Schwidefsky <schwidefsky@de.ibm.com> wrote:
> Subject: [PATCH] Add PR_PREFIX to pr_xyz macros.
>
> From: Martin Schwidefsky <schwidefsky@de.ibm.com>
>
> A common reason for device drivers to implement their own printk macros
> is the lack of a printk prefix with the standard pr_xyz macros. Introduce
> a pr_fmt macro that is applied for every pr_xyz macro to the format string.
> The most common use of the pr_fmt macro would be to add the name of the
> device driver to all pr_xyz messages in a source file.
>
Seems sane. It would be nice to see one such driver converted over (hint;))
> ---
> include/linux/kernel.h | 42 +++++++++++++++++++++++-------------------
> 1 file changed, 23 insertions(+), 19 deletions(-)
>
> diff -urpN linux-2.6/include/linux/kernel.h linux-2.6-patched/include/linux/kernel.h
> --- linux-2.6/include/linux/kernel.h 2008-11-03 09:40:45.000000000 +0100
> +++ linux-2.6-patched/include/linux/kernel.h 2008-11-12 21:07:21.000000000 +0100
> @@ -318,32 +318,36 @@ static inline char *pack_hex_byte(char *
> return buf;
> }
>
> -#define pr_emerg(fmt, arg...) \
> - printk(KERN_EMERG fmt, ##arg)
> -#define pr_alert(fmt, arg...) \
> - printk(KERN_ALERT fmt, ##arg)
> -#define pr_crit(fmt, arg...) \
> - printk(KERN_CRIT fmt, ##arg)
> -#define pr_err(fmt, arg...) \
> - printk(KERN_ERR fmt, ##arg)
> -#define pr_warning(fmt, arg...) \
> - printk(KERN_WARNING fmt, ##arg)
> -#define pr_notice(fmt, arg...) \
> - printk(KERN_NOTICE fmt, ##arg)
> -#define pr_info(fmt, arg...) \
> - printk(KERN_INFO fmt, ##arg)
> +#ifndef pr_fmt
> +#define pr_fmt(fmt) fmt
> +#endif
> +
> +#define pr_emerg(fmt, ...) \
> + printk(KERN_EMERG pr_fmt(fmt), ##__VA_ARGS__)
> +#define pr_alert(fmt, ...) \
> + printk(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__)
> +#define pr_crit(fmt, ...) \
> + printk(KERN_CRIT pr_fmt(fmt), ##__VA_ARGS__)
> +#define pr_err(fmt, ...) \
> + printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
> +#define pr_warning(fmt, ...) \
> + printk(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
> +#define pr_notice(fmt, ...) \
> + printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
> +#define pr_info(fmt, ...) \
> + printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
>
> /* If you are writing a driver, please use dev_dbg instead */
> #if defined(CONFIG_DYNAMIC_PRINTK_DEBUG)
> #define pr_debug(fmt, ...) do { \
> - dynamic_pr_debug(fmt, ##__VA_ARGS__); \
> + dynamic_pr_debug(pr_fmt(fmt), ##__VA_ARGS__); \
> } while (0)
> #elif defined(DEBUG)
> -#define pr_debug(fmt, arg...) \
> - printk(KERN_DEBUG fmt, ##arg)
> +#define pr_debug(fmt, ...) \
> + printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
> #else
> -#define pr_debug(fmt, arg...) \
> - ({ if (0) printk(KERN_DEBUG fmt, ##arg); 0; })
> +#define pr_debug(fmt, ...) \
> + ({ if (0) printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__); 0; })
> #endif
gack, what a stupid mess we made with the pr_debug() special-case :(
next prev parent reply other threads:[~2008-11-14 21:32 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-12 17:35 [RFC] Add PR_PREFIX to pr_xyz macros Martin Schwidefsky
2008-11-12 19:48 ` Linus Torvalds
2008-11-12 19:59 ` Martin Schwidefsky
2008-11-12 20:16 ` Martin Schwidefsky
2008-11-14 21:32 ` Andrew Morton [this message]
2008-11-15 8:58 ` Martin Schwidefsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20081114133213.ac98ba0f.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=schwidefsky@de.ibm.com \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.