On Tue, 2008-04-08 at 22:18 +0200, Patrick McHardy wrote:[] I also think this should be cleaned up before 2.6.25 is released. I think that the changes to pr_debug, dev_dbg, and dev_vdbg to use an "if (0) printk" macro rather than an empty inline I posted a few times without any reply or comment should work for most all cases. These changes should allow gcc to eliminate unused functions called as arguments to those debugging logging functions while maintaining the printf argument validation. I'll check out codiff as I haven't used it. Is this the latest codiff tool? http://git.kernel.org/?p=linux/kernel/git/acme/pahole.git;a=summary cheers, Joe Here is the patch again: Signed-off-by: Joe Perches <joe@perches.com> diff --git a/include/linux/device.h b/include/linux/device.h index 2258d89..12bb248 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -608,21 +608,21 @@ 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..80be070 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -293,10 +293,11 @@ 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 /* -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
| Linus Torvalds | Linux 2.6.27-rc8 |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Linus Torvalds | Linux 2.6.20-rc6 |
| Mike Snitzer | Re: Distributed storage. |
git: | |
| Gerrit Renker | [PATCH 03/37] dccp: List management for new feature negotiation |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| David Miller | [GIT]: Networking |
| Herbert Xu | Re: Kernel oops with 2.6.26, padlock and ipsec: probably problem with fpu state ch... |
