All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joe Perches <joe@perches.com>
To: David Miller <davem@davemloft.net>
Cc: harvey.harrison@gmail.com, netdev@vger.kernel.org,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: New sparse warning in net/mac80211/debugfs_sta.c
Date: Thu, 21 Feb 2008 09:17:13 -0800	[thread overview]
Message-ID: <1203614233.7181.262.camel@localhost> (raw)
In-Reply-To: <20080221.020554.259219477.davem@davemloft.net>

On Thu, 2008-02-21 at 02:05 -0800, David Miller wrote:
> >From another perspective adding that __pure attribute to print_mac()
> might not have been the best idea.  But I can't think of another
> way to eliminate the "passing print_mac() args to pr_debug()
> still generates calls to print_mac() even when DEBUG is not
> defined" problem :-/

Philip Craig made a suggestion:
http://marc.info/?l=linux-wireless&m=120338413108120&w=2

to use this:

If not debugging, guard #define wrapper_printks with if (0).
The gcc optimizer removes the printk but gcc still does
printf argument verification.

There are many other debug printk wrappers

	#ifdef DEBUG
	#define printk_wrapper 
	#else
	#define printk_wrapper printk
	#endif

that should be converted as well.

Signed-off-by: Joe Perches <joe@perches.com>

diff --git a/include/linux/device.h b/include/linux/device.h
index 2258d89..79601b1 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -608,21 +608,15 @@ extern const char *dev_driver_string(struct device *dev);
 #define dev_dbg(dev, format, arg...)		\
 	dev_printk(KERN_DEBUG , dev , format , ## arg)
 #else
-static inline int __attribute__ ((format (printf, 2, 3)))
-dev_dbg(struct device *dev, const char *fmt, ...)
-{
-	return 0;
-}
+#define dev_dbg(dev, format, arg...) \
+	do { if (0) dev_printk(KERN_DEBUG , dev , format, ## arg); } while (0)
 #endif
 
 #ifdef VERBOSE_DEBUG
 #define dev_vdbg	dev_dbg
 #else
-static inline int __attribute__ ((format (printf, 2, 3)))
-dev_vdbg(struct device *dev, const char *fmt, ...)
-{
-	return 0;
-}
+#define dev_vdbg(dev, format, arg...) \
+	do { if (0) dev_printk(KERN_DEBUG , dev , format, ## arg); } while (0)
 #endif
 
 /* Create alias, so I can be autoloaded. */
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index 2df44e7..cd24112 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -293,10 +293,8 @@ extern void print_hex_dump_bytes(const char *prefix_str, int prefix_type,
 #define pr_debug(fmt, arg...) \
 	printk(KERN_DEBUG fmt, ##arg)
 #else
-static inline int __attribute__ ((format (printf, 1, 2))) pr_debug(const char * fmt, ...)
-{
-	return 0;
-}
+#define pr_debug(fmt, arg...) \
+	do { if (0) printk(KERN_DEBUG fmt, ##arg); } while (0)
 #endif
 
 /*



  parent reply	other threads:[~2008-02-21 17:18 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-21  9:34 New sparse warning in net/mac80211/debugfs_sta.c Harvey Harrison
2008-02-21  9:54 ` Johannes Berg
2008-02-21 10:03   ` David Miller
2008-02-21 10:08     ` Harvey Harrison
2008-02-21 10:12       ` David Miller
2008-02-21 10:16         ` Harvey Harrison
2008-02-21 10:22           ` [PATCH] mac80211: fix debugfs_sta print_mac() warning Johannes Berg
2008-02-21 10:22             ` Johannes Berg
     [not found] ` <20080221.015743.222059206.davem@davemloft.net>
2008-02-21 10:01   ` New sparse warning in net/mac80211/debugfs_sta.c Harvey Harrison
2008-02-21 10:05     ` David Miller
2008-02-21 10:14       ` Harvey Harrison
2008-02-21 10:17       ` Johannes Berg
2008-02-21 17:54         ` Joe Perches
2008-02-21 18:00           ` Patrick McHardy
2008-02-21 18:15             ` Patrick McHardy
2008-02-24  4:02             ` David Miller
2008-02-25  9:53               ` Johannes Berg
2008-02-25 16:53                 ` Joe Perches
2008-02-25 17:29                   ` Johannes Berg
2008-02-25 17:23                 ` Johannes Berg
2008-02-25 19:52                 ` David Miller
2008-02-25 19:56                   ` Johannes Berg
2008-02-25 20:05                     ` Johannes Berg
2008-02-25 20:14                       ` David Miller
2008-02-25 20:12                     ` David Miller
2008-02-25 11:47               ` Patrick McHardy
2008-02-25 19:58                 ` Joe Perches
2008-04-08 20:18                   ` Patrick McHardy
2008-04-08 21:02                     ` Joe Perches
2008-04-08 21:16                       ` David Miller
2008-04-08 21:19                       ` Patrick McHardy
2008-04-08 22:09                         ` Joe Perches
2008-04-08 22:30                           ` David Miller
2008-04-08 22:41                             ` Joe Perches
2008-04-08 22:32                           ` Patrick McHardy
2008-02-21 17:17       ` Joe Perches [this message]
2008-02-21 17:45       ` Patrick McHardy

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=1203614233.7181.262.camel@localhost \
    --to=joe@perches.com \
    --cc=davem@davemloft.net \
    --cc=harvey.harrison@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.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.