return err;
}
+#ifndef CONFIG_BRCM_TRACING
+void __brcmf_err(const char *func, const char *fmt, ...)
+{
+ struct va_format vaf;
+ va_list args;
+
+ va_start(args, fmt);
+
+ vaf.fmt = fmt;
+ vaf.va = &args;
+ pr_err("%s: %pV", func, &vaf);
+
+ va_end(args);
+}
+#endif
+
#if defined(CONFIG_BRCM_TRACING) || defined(CONFIG_BRCMDBG)
void __brcmf_dbg(u32 level, const char *func, const char *fmt, ...)
{
#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+__printf(2, 3)
+void __brcmf_err(const char *func, const char *fmt, ...);
#ifndef CONFIG_BRCM_TRACING
/* Macro for error messages. net_ratelimit() is used when driver
* debugging is not selected. When debugging the driver error
#define brcmf_err(fmt, ...) \
do { \
if (IS_ENABLED(CONFIG_BRCMDBG) || net_ratelimit()) \
- pr_err("%s: " fmt, __func__, ##__VA_ARGS__); \
+ __brcmf_err(__func__, fmt, ##__VA_ARGS__); \
} while (0)
#else
-__printf(2, 3)
-void __brcmf_err(const char *func, const char *fmt, ...);
#define brcmf_err(fmt, ...) \
__brcmf_err(__func__, fmt, ##__VA_ARGS__)
#endif