Patchwork ath9k: Add wiphy name to log messages.

login
register
mail settings
Submitter Ben Greear
Date March 8, 2012, 12:05 a.m.
Message ID <1331165106-10359-1-git-send-email-greearb@candelatech.com>
Download mbox | patch
Permalink /patch/145364/
State Not Applicable
Delegated to: David Miller
Headers show

Comments

Ben Greear - March 8, 2012, 12:05 a.m.
From: Ben Greear <greearb@candelatech.com>

On systems with multiple NICs, it's nice to know which
one is producing warnings.  Here is an example of the
new ouput:

ath: wiphy0: Failed to stop TX DMA, queues=0x005!

Signed-off-by: Ben Greear <greearb@candelatech.com>
---
:100644 100644 efc0111... 54f255d... M	drivers/net/wireless/ath/ath.h
:100644 100644 d9218fe... ea2c737... M	drivers/net/wireless/ath/main.c
 drivers/net/wireless/ath/ath.h  |    7 ++++---
 drivers/net/wireless/ath/main.c |    9 +++++++--
 2 files changed, 11 insertions(+), 5 deletions(-)
Joe Perches - March 8, 2012, 12:54 a.m.
On Wed, 2012-03-07 at 16:05 -0800, greearb@candelatech.com wrote:
> From: Ben Greear <greearb@candelatech.com>
> 
> On systems with multiple NICs, it's nice to know which
> one is producing warnings.  Here is an example of the
> new ouput:
> 
> ath: wiphy0: Failed to stop TX DMA, queues=0x005!

Makes some sense.

> diff --git a/drivers/net/wireless/ath/ath.h b/drivers/net/wireless/ath/ath.h
[]
> @@ -174,12 +174,13 @@ bool ath_hw_keyreset(struct ath_common *common, u16 entry);
>  void ath_hw_cycle_counters_update(struct ath_common *common);
>  int32_t ath_hw_get_listen_time(struct ath_common *common);
>  
> -extern __printf(2, 3) void ath_printk(const char *level, const char *fmt, ...);
> +extern __printf(3, 4) void ath_printk(const char *level,
> +				      const struct ath_common *common,
> +				      const char *fmt, ...);

Maybe

__printf(3, 4)
void ath_printk(etc...

>  
>  #define _ath_printk(level, common, fmt, ...)			\
>  do {								\
> -	__always_unused struct ath_common *unused = common;	\
> -	ath_printk(level, fmt, ##__VA_ARGS__);			\
> +	ath_printk(level, common, fmt, ##__VA_ARGS__);		\
>  } while (0)
>  
>  #define ath_emerg(common, fmt, ...)				\

It's probably better to remove the _ath_printk
indirection altogether and just use ath_printk
directly in the ath_<level> macros.

> diff --git a/drivers/net/wireless/ath/main.c b/drivers/net/wireless/ath/main.c
[]
> @@ -57,7 +57,8 @@ struct sk_buff *ath_rxbuf_alloc(struct ath_common *common,
>  }
>  EXPORT_SYMBOL(ath_rxbuf_alloc);
>  
> -void ath_printk(const char *level, const char *fmt, ...)
> +void ath_printk(const char *level, const struct ath_common* common,
> +		const char *fmt, ...)
>  {
>  	struct va_format vaf;
>  	va_list args;
> @@ -67,7 +68,11 @@ void ath_printk(const char *level, const char *fmt, ...)
>  	vaf.fmt = fmt;
>  	vaf.va = &args;
>  
> -	printk("%sath: %pV", level, &vaf);
> +	if (common && common->hw && common->hw->wiphy)
> +		printk("%sath: %s: %pV",
> +		       level, wiphy_name(common->hw->wiphy), &vaf);
> +	else
> +		printk("%sath: %pV", level, &vaf);
>  
>  	va_end(args);

Maybe it's better to print wiphyX: only when
multiple ath nics exist?



--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/drivers/net/wireless/ath/ath.h b/drivers/net/wireless/ath/ath.h
index efc0111..54f255d 100644
--- a/drivers/net/wireless/ath/ath.h
+++ b/drivers/net/wireless/ath/ath.h
@@ -174,12 +174,13 @@  bool ath_hw_keyreset(struct ath_common *common, u16 entry);
 void ath_hw_cycle_counters_update(struct ath_common *common);
 int32_t ath_hw_get_listen_time(struct ath_common *common);
 
-extern __printf(2, 3) void ath_printk(const char *level, const char *fmt, ...);
+extern __printf(3, 4) void ath_printk(const char *level,
+				      const struct ath_common *common,
+				      const char *fmt, ...);
 
 #define _ath_printk(level, common, fmt, ...)			\
 do {								\
-	__always_unused struct ath_common *unused = common;	\
-	ath_printk(level, fmt, ##__VA_ARGS__);			\
+	ath_printk(level, common, fmt, ##__VA_ARGS__);		\
 } while (0)
 
 #define ath_emerg(common, fmt, ...)				\
diff --git a/drivers/net/wireless/ath/main.c b/drivers/net/wireless/ath/main.c
index d9218fe..ea2c737 100644
--- a/drivers/net/wireless/ath/main.c
+++ b/drivers/net/wireless/ath/main.c
@@ -57,7 +57,8 @@  struct sk_buff *ath_rxbuf_alloc(struct ath_common *common,
 }
 EXPORT_SYMBOL(ath_rxbuf_alloc);
 
-void ath_printk(const char *level, const char *fmt, ...)
+void ath_printk(const char *level, const struct ath_common* common,
+		const char *fmt, ...)
 {
 	struct va_format vaf;
 	va_list args;
@@ -67,7 +68,11 @@  void ath_printk(const char *level, const char *fmt, ...)
 	vaf.fmt = fmt;
 	vaf.va = &args;
 
-	printk("%sath: %pV", level, &vaf);
+	if (common && common->hw && common->hw->wiphy)
+		printk("%sath: %s: %pV",
+		       level, wiphy_name(common->hw->wiphy), &vaf);
+	else
+		printk("%sath: %pV", level, &vaf);
 
 	va_end(args);
 }