net: rtlwifi: Remove in_interrupt() from debug macro
The usage of in_interrupt() in drivers in is phased out. rtl_dbg() a printk based debug aid is using in_interrupt() in the underlying C function _rtl_dbg_out() which is almost identical to _rtl_dbg_print(). The only difference is the printout of in_interrupt(). The decoding of in_interrupt() as hexvalue is non-trivial and aside of being phased out for driver usage the return value is just by chance the masked preempt count value and not a boolean. These home brewn printk debug aids are tedious to work with and provide only minimal context. They should be replaced by trace_printk() or a debug tracepoint which automatically records all context information. To make progress on the in_interrupt() cleanup, make rtl_dbg() use _rtl_dbg_print() and remove _rtl_dbg_out(). Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Kalle Valo <kvalo@codeaurora.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
a3b7b227f1
Коммит
e741751bda
|
@ -8,26 +8,6 @@
|
||||||
#include <linux/vmalloc.h>
|
#include <linux/vmalloc.h>
|
||||||
|
|
||||||
#ifdef CONFIG_RTLWIFI_DEBUG
|
#ifdef CONFIG_RTLWIFI_DEBUG
|
||||||
void _rtl_dbg_out(struct rtl_priv *rtlpriv, u64 comp, int level,
|
|
||||||
const char *fmt, ...)
|
|
||||||
{
|
|
||||||
if (unlikely((comp & rtlpriv->cfg->mod_params->debug_mask) &&
|
|
||||||
level <= rtlpriv->cfg->mod_params->debug_level)) {
|
|
||||||
struct va_format vaf;
|
|
||||||
va_list args;
|
|
||||||
|
|
||||||
va_start(args, fmt);
|
|
||||||
|
|
||||||
vaf.fmt = fmt;
|
|
||||||
vaf.va = &args;
|
|
||||||
|
|
||||||
pr_info(":<%lx> %pV", in_interrupt(), &vaf);
|
|
||||||
|
|
||||||
va_end(args);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL_GPL(_rtl_dbg_out);
|
|
||||||
|
|
||||||
void _rtl_dbg_print(struct rtl_priv *rtlpriv, u64 comp, int level,
|
void _rtl_dbg_print(struct rtl_priv *rtlpriv, u64 comp, int level,
|
||||||
const char *fmt, ...)
|
const char *fmt, ...)
|
||||||
{
|
{
|
||||||
|
|
|
@ -148,10 +148,6 @@ enum dbgp_flag_e {
|
||||||
|
|
||||||
struct rtl_priv;
|
struct rtl_priv;
|
||||||
|
|
||||||
__printf(4, 5)
|
|
||||||
void _rtl_dbg_out(struct rtl_priv *rtlpriv, u64 comp, int level,
|
|
||||||
const char *fmt, ...);
|
|
||||||
|
|
||||||
__printf(4, 5)
|
__printf(4, 5)
|
||||||
void _rtl_dbg_print(struct rtl_priv *rtlpriv, u64 comp, int level,
|
void _rtl_dbg_print(struct rtl_priv *rtlpriv, u64 comp, int level,
|
||||||
const char *fmt, ...);
|
const char *fmt, ...);
|
||||||
|
@ -160,8 +156,8 @@ void _rtl_dbg_print_data(struct rtl_priv *rtlpriv, u64 comp, int level,
|
||||||
const char *titlestring,
|
const char *titlestring,
|
||||||
const void *hexdata, int hexdatalen);
|
const void *hexdata, int hexdatalen);
|
||||||
|
|
||||||
#define rtl_dbg(rtlpriv, comp, level, fmt, ...) \
|
#define rtl_dbg(rtlpriv, comp, level, fmt, ...) \
|
||||||
_rtl_dbg_out(rtlpriv, comp, level, \
|
_rtl_dbg_print(rtlpriv, comp, level, \
|
||||||
fmt, ##__VA_ARGS__)
|
fmt, ##__VA_ARGS__)
|
||||||
|
|
||||||
#define RTPRINT(rtlpriv, dbgtype, dbgflag, fmt, ...) \
|
#define RTPRINT(rtlpriv, dbgtype, dbgflag, fmt, ...) \
|
||||||
|
|
Загрузка…
Ссылка в новой задаче