Re: [PATCH 2/7] rtlwifi: Standardize RT_PRINT_DATA macro and uses
From: Larry Finger <hidden>
Date: 2012-01-05 16:44:22
Also in:
linux-wireless, lkml
On 01/05/2012 10:29 AM, Joe Perches wrote:
On Thu, 2012-01-05 at 12:43 +0100, Stanislaw Gruszka wrote:quoted
Hi JoeMorning Stanislaw.quoted
On Wed, Jan 04, 2012 at 07:40:40PM -0800, Joe Perches wrote:quoted
RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_DMESG,Since you are working on it, can you also get rid of this DBG_* parameter, if rtlwifi maintainers are ok with that? It is additional console loglvevel, standard kernel loglevel should be used.Not quite, all of the RT_PRINT_DATA are emitted at KERN_DEBUG. These DBG_*s are just a normal debug verbosity level. It does seem odd though to have a DBG_EMERG and not always emit it.
Those are always logged, no matter what debug level is set.
What might also be useful for any embedded use is to add
CONFIG_RTLWIFI_DEBUG to conditionally remove all of the
debug logging code to reduce the largish object size.
This reduces the object size by about 1/3 (250KB)
when CONFIG_RTLWIFI_DEBUG is not set.
$ size drivers/net/wireless/rtlwifi/built-in.o*
text data bss dec hex filename
368722 55333 94224 518279 7e887 drivers/net/wireless/rtlwifi/built-in.o.new
586904 55333 127216 769453 bbdad drivers/net/wireless/rtlwifi/built-in.o.old
Signed-off-by: Joe Perches<joe@perches.com>This change seems sensible to me. Larry
quoted hunk ↗ jump to hunk
--- drivers/net/wireless/rtlwifi/Kconfig | 5 +++++ drivers/net/wireless/rtlwifi/debug.h | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 0 deletions(-)diff --git a/drivers/net/wireless/rtlwifi/Kconfig b/drivers/net/wireless/rtlwifi/Kconfig index d6c42e6..44b9c0a 100644 --- a/drivers/net/wireless/rtlwifi/Kconfig +++ b/drivers/net/wireless/rtlwifi/Kconfig@@ -49,6 +49,11 @@ config RTLWIFI depends on RTL8192CE || RTL8192CU || RTL8192SE || RTL8192DE default m +config RTLWIFI_DEBUG + tristate "Additional debugging output" + depends on RTL8192CE || RTL8192CU || RTL8192SE || RTL8192DE + default y + config RTL8192C_COMMON tristate depends on RTL8192CE || RTL8192CUdiff --git a/drivers/net/wireless/rtlwifi/debug.h b/drivers/net/wireless/rtlwifi/debug.h index b024c23..fd5600c 100644 --- a/drivers/net/wireless/rtlwifi/debug.h +++ b/drivers/net/wireless/rtlwifi/debug.h@@ -156,6 +156,8 @@ enum dbgp_flag_e { DBGP_TYPE_MAX }; +#ifdef CONFIG_RTLWIFI_DEBUG + #define RT_ASSERT(_exp, fmt, ...) \ do { \ if (!(_exp)) { \@@ -195,5 +197,37 @@ do { \ } \ } while (0) +#else + +struct rtl_priv; + +__printf(2, 3) +static inline void RT_ASSERT(int exp, const char *fmt, ...) +{ +} + +__printf(4, 5) +static inline void RT_TRACE(struct rtl_priv *rtlpriv, + int comp, int level, + const char *fmt, ...) +{ +} + +__printf(4, 5) +static inline void RTPRINT(struct rtl_priv *rtlpriv, + int dbgtype, int dbgflag, + const char *fmt, ...) +{ +} + +static inline void RT_PRINT_DATA(struct rtl_priv *rtlpriv, + int comp, int level, + const char *titlestring, + const void *hexdata, size_t hexdatalen) +{ +} + +#endif + void rtl_dbgp_flag_init(struct ieee80211_hw *hw); #endif