From 073730d771d97bb5bbef080bd5d6d0a5af7cba7d Mon Sep 17 00:00:00 2001 From: Joe Perches Date: Mon, 26 Jul 2010 14:40:00 -0700 Subject: [PATCH] wireless: Convert wiphy_debug macro to function Save a few bytes of text (allyesconfig) $ size drivers/net/wireless/built-in.o* text data bss dec hex filename 3924568 100548 871056 4896172 4ab5ac drivers/net/wireless/built-in.o.new 3926520 100548 871464 4898532 4abee4 drivers/net/wireless/built-in.o.old $ size net/wireless/core.o* text data bss dec hex filename 12843 216 3768 16827 41bb net/wireless/core.o.new 12328 216 3656 16200 3f48 net/wireless/core.o Signed-off-by: Joe Perches Signed-off-by: John W. Linville --- include/net/cfg80211.h | 5 +++-- net/wireless/core.c | 49 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 2 deletions(-) diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 7fe774c2d43d..ae80f8fb17fe 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h @@ -2442,8 +2442,9 @@ void cfg80211_cqm_rssi_notify(struct net_device *dev, wiphy_printk(KERN_NOTICE, wiphy, format, ##args) #define wiphy_info(wiphy, format, args...) \ wiphy_printk(KERN_INFO, wiphy, format, ##args) -#define wiphy_debug(wiphy, format, args...) \ - wiphy_printk(KERN_DEBUG, wiphy, format, ##args) + +int wiphy_debug(const struct wiphy *wiphy, const char *format, ...) + __attribute__ ((format (printf, 2, 3))); #if defined(DEBUG) #define wiphy_dbg(wiphy, format, args...) \ diff --git a/net/wireless/core.c b/net/wireless/core.c index f65c6494ede9..541e2fff5e9c 100644 --- a/net/wireless/core.c +++ b/net/wireless/core.c @@ -907,3 +907,52 @@ static void __exit cfg80211_exit(void) destroy_workqueue(cfg80211_wq); } module_exit(cfg80211_exit); + +static int ___wiphy_printk(const char *level, const struct wiphy *wiphy, + struct va_format *vaf) +{ + if (!wiphy) + return printk("%s(NULL wiphy *): %pV", level, vaf); + + return printk("%s%s: %pV", level, wiphy_name(wiphy), vaf); +} + +int __wiphy_printk(const char *level, const struct wiphy *wiphy, + const char *fmt, ...) +{ + struct va_format vaf; + va_list args; + int r; + + va_start(args, fmt); + + vaf.fmt = fmt; + vaf.va = &args; + + r = ___wiphy_printk(level, wiphy, &vaf); + va_end(args); + + return r; +} +EXPORT_SYMBOL(__wiphy_printk); + +#define define_wiphy_printk_level(func, kern_level) \ +int func(const struct wiphy *wiphy, const char *fmt, ...) \ +{ \ + struct va_format vaf; \ + va_list args; \ + int r; \ + \ + va_start(args, fmt); \ + \ + vaf.fmt = fmt; \ + vaf.va = &args; \ + \ + r = ___wiphy_printk(kern_level, wiphy, &vaf); \ + va_end(args); \ + \ + return r; \ +} \ +EXPORT_SYMBOL(func); + +define_wiphy_printk_level(wiphy_debug, KERN_DEBUG); -- 2.39.5