Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 102e295e authored by Larry Finger's avatar Larry Finger Committed by Kalle Valo
Browse files

rtlwifi: Redo debugging macros RTPRINT and RT_PRINT_DATA



These two debugging formss implement debugging using rather complicated
macro constructions. These are replaced with compiled code that is easier
to understand.

Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
Cc: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent e8cd4750
Loading
Loading
Loading
Loading
+37 −5
Original line number Diff line number Diff line
@@ -51,7 +51,7 @@ EXPORT_SYMBOL_GPL(rtl_dbgp_flag_init);

#ifdef CONFIG_RTLWIFI_DEBUG
void _rtl_dbg_trace(struct rtl_priv *rtlpriv, int comp, int level,
		    const char *modname, const char *fmt, ...)
		    const char *fmt, ...)
{
	if (unlikely((comp & rtlpriv->dbg.global_debugcomponents) &&
		     (level <= rtlpriv->dbg.global_debuglevel))) {
@@ -63,13 +63,45 @@ void _rtl_dbg_trace(struct rtl_priv *rtlpriv, int comp, int level,
		vaf.fmt = fmt;
		vaf.va = &args;

		printk(KERN_DEBUG "%s:%ps:<%lx-%x> %pV",
		       modname, __builtin_return_address(0),
		       in_interrupt(), in_atomic(),
		       &vaf);
		pr_debug(":<%lx> %pV", in_interrupt(), &vaf);

		va_end(args);
	}
}
EXPORT_SYMBOL_GPL(_rtl_dbg_trace);

void _rtl_dbg_print(struct rtl_priv *rtlpriv, u64 comp, int level,
		    const char *fmt, ...)
{
	if (unlikely((comp & rtlpriv->dbg.global_debugcomponents) &&
		     (level <= rtlpriv->dbg.global_debuglevel))) {
		struct va_format vaf;
		va_list args;

		va_start(args, fmt);

		vaf.fmt = fmt;
		vaf.va = &args;

		pr_debug("%pV", &vaf);

		va_end(args);
	}
}
EXPORT_SYMBOL_GPL(_rtl_dbg_print);

void _rtl_dbg_print_data(struct rtl_priv *rtlpriv, u64 comp, int level,
			 const char *titlestring,
			 const void *hexdata, int hexdatalen)
{
	if (unlikely(((comp) & rtlpriv->dbg.global_debugcomponents) &&
		     ((level) <= rtlpriv->dbg.global_debuglevel))) {
		pr_debug("In process \"%s\" (pid %i): %s\n",
			 current->comm, current->pid, titlestring);
		print_hex_dump_bytes("", DUMP_PREFIX_NONE,
				     hexdata, hexdatalen);
	}
}
EXPORT_SYMBOL_GPL(_rtl_dbg_print_data);

#endif
+14 −19
Original line number Diff line number Diff line
@@ -168,34 +168,29 @@ enum dbgp_flag_e {

struct rtl_priv;

__printf(5, 6)
__printf(4, 5)
void _rtl_dbg_trace(struct rtl_priv *rtlpriv, int comp, int level,
		    const char *modname, const char *fmt, ...);
		    const char *fmt, ...);

__printf(4, 5)
void _rtl_dbg_print(struct rtl_priv *rtlpriv, u64 comp, int level,
		    const char *fmt, ...);

void _rtl_dbg_print_data(struct rtl_priv *rtlpriv, u64 comp, int level,
			 const char *titlestring,
			 const void *hexdata, int hexdatalen);

#define RT_TRACE(rtlpriv, comp, level, fmt, ...)			\
	_rtl_dbg_trace(rtlpriv, comp, level,				\
		       KBUILD_MODNAME, fmt, ##__VA_ARGS__)
		       fmt, ##__VA_ARGS__)

#define RTPRINT(rtlpriv, dbgtype, dbgflag, fmt, ...)			\
do {									\
	if (unlikely(rtlpriv->dbg.dbgp_type[dbgtype] & dbgflag)) {	\
		printk(KERN_DEBUG KBUILD_MODNAME ": " fmt,		\
		       ##__VA_ARGS__);					\
	}								\
} while (0)
	_rtl_dbg_print(rtlpriv, dbgtype, dbgflag, fmt, ##__VA_ARGS__)

#define RT_PRINT_DATA(rtlpriv, _comp, _level, _titlestring, _hexdata,	\
		      _hexdatalen)					\
do {									\
	if (unlikely(((_comp) & rtlpriv->dbg.global_debugcomponents) &&	\
		     (_level <= rtlpriv->dbg.global_debuglevel))) {	\
		printk(KERN_DEBUG "%s: In process \"%s\" (pid %i): %s\n", \
		       KBUILD_MODNAME, current->comm, current->pid,	\
		       _titlestring);					\
		print_hex_dump_bytes("", DUMP_PREFIX_NONE,		\
				     _hexdata, _hexdatalen);		\
	}								\
} while (0)
	_rtl_dbg_print_data(rtlpriv, _comp, _level,			\
			    _titlestring, _hexdata, _hexdatalen)

#else