brcmfmac: modify __brcmf_err() to take bus as a parameter
So far __brcmf_err() was using pr_err() which didn't allow identifying device that was affected by an error. It's crucial for systems with more than 1 device supported by brcmfmac (a common case for home routers). This change allows passing struct brcmf_bus to the __brcmf_err(). That struct has been agreed to be the most common one. It allows accessing struct device easily & using dev_err() printing helper. Signed-off-by: Rafał Miłecki <rafal@milecki.pl> Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:

committed by
Kalle Valo

parent
6ecde4936b
commit
5cc898fbcb
@@ -350,7 +350,7 @@ done:
|
||||
}
|
||||
|
||||
#ifndef CONFIG_BRCM_TRACING
|
||||
void __brcmf_err(const char *func, const char *fmt, ...)
|
||||
void __brcmf_err(struct brcmf_bus *bus, const char *func, const char *fmt, ...)
|
||||
{
|
||||
struct va_format vaf;
|
||||
va_list args;
|
||||
@@ -359,7 +359,10 @@ void __brcmf_err(const char *func, const char *fmt, ...)
|
||||
|
||||
vaf.fmt = fmt;
|
||||
vaf.va = &args;
|
||||
pr_err("%s: %pV", func, &vaf);
|
||||
if (bus)
|
||||
dev_err(bus->dev, "%s: %pV", func, &vaf);
|
||||
else
|
||||
pr_err("%s: %pV", func, &vaf);
|
||||
|
||||
va_end(args);
|
||||
}
|
||||
|
@@ -45,8 +45,10 @@
|
||||
#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
__printf(2, 3)
|
||||
void __brcmf_err(const char *func, const char *fmt, ...);
|
||||
struct brcmf_bus;
|
||||
|
||||
__printf(3, 4)
|
||||
void __brcmf_err(struct brcmf_bus *bus, const char *func, const char *fmt, ...);
|
||||
/* Macro for error messages. When debugging / tracing the driver all error
|
||||
* messages are important to us.
|
||||
*/
|
||||
@@ -55,7 +57,7 @@ void __brcmf_err(const char *func, const char *fmt, ...);
|
||||
if (IS_ENABLED(CONFIG_BRCMDBG) || \
|
||||
IS_ENABLED(CONFIG_BRCM_TRACING) || \
|
||||
net_ratelimit()) \
|
||||
__brcmf_err(__func__, fmt, ##__VA_ARGS__); \
|
||||
__brcmf_err(NULL, __func__, fmt, ##__VA_ARGS__);\
|
||||
} while (0)
|
||||
|
||||
#if defined(DEBUG) || defined(CONFIG_BRCM_TRACING)
|
||||
|
@@ -14,14 +14,16 @@
|
||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <linux/device.h>
|
||||
#include <linux/module.h> /* bug in tracepoint.h, it should include this */
|
||||
|
||||
#ifndef __CHECKER__
|
||||
#define CREATE_TRACE_POINTS
|
||||
#include "bus.h"
|
||||
#include "tracepoint.h"
|
||||
#include "debug.h"
|
||||
|
||||
void __brcmf_err(const char *func, const char *fmt, ...)
|
||||
void __brcmf_err(struct brcmf_bus *bus, const char *func, const char *fmt, ...)
|
||||
{
|
||||
struct va_format vaf = {
|
||||
.fmt = fmt,
|
||||
@@ -30,7 +32,10 @@ void __brcmf_err(const char *func, const char *fmt, ...)
|
||||
|
||||
va_start(args, fmt);
|
||||
vaf.va = &args;
|
||||
pr_err("%s: %pV", func, &vaf);
|
||||
if (bus)
|
||||
dev_err(bus->dev, "%s: %pV", func, &vaf);
|
||||
else
|
||||
pr_err("%s: %pV", func, &vaf);
|
||||
trace_brcmf_err(func, &vaf);
|
||||
va_end(args);
|
||||
}
|
||||
|
Reference in New Issue
Block a user