Re: [PATCH] rtlwifi: Create _rtl_dbg_trace function to reduce RT_TRACE code size
From: Joe Perches <joe@perches.com>
Date: 2016-06-28 03:55:22
Also in:
linux-wireless, lkml
On Mon, 2016-06-27 at 19:53 -0500, Larry Finger wrote:
On 06/25/2016 05:46 PM, Joe Perches wrote:quoted
This debugging macro can expand to a lot of code. Make it a function to reduce code size. (x86-64 defconfig w/ all rtlwifi drivers and allyesconfig) $ size drivers/net/wireless/realtek/rtlwifi/built-in.o* text data bss dec hex filename 900083 200499 1907 1102489 10d299 drivers/net/wireless/realtek/rtlwifi/built-in.o.defconfig.new 1113597 200499 1907 1316003 1414a3 drivers/net/wireless/realtek/rtlwifi/built-in.o.defconfig.old 1746879 453503 8512 2208894 21b47e drivers/net/wireless/realtek/rtlwifi/built-in.o.new 2051965 503311 8512 2563788 271ecc drivers/net/wireless/realtek/rtlwifi/built-in.o.old Signed-off-by: Joe Perches <joe@perches.com>I acked this before; however there is a bug that breaks the build if CONFIG_RTLWIFI_DEBUG is not defined. The rest of the code calls _rtl_dbg_trace(), but that symbol is never defined. The problem can be fixed in debug.c or debug.h.
Confused a bit. What breaks again?
debug.h:
#ifdef CONFIG_RTLWIFI_DEBUG
[]
__printf(5, 6)
void _rtl_dbg_trace(struct rtl_priv *rtlpriv, int comp, int level,
const char *modname, const char *fmt, ...);
#define RT_TRACE(rtlpriv, comp, level, fmt, ...) \
_rtl_dbg_trace(rtlpriv, comp, level, \
KBUILD_MODNAME, fmt, ##__VA_ARGS__)
[]
#else
[]
__printf(4, 5)
static inline void RT_TRACE(struct rtl_priv *rtlpriv,
int comp, int level,
const char *fmt, ...)
{
}
[]
#endif