[RFC] ath10k: improve logging to include dev id

Kalle Valo kvalo at qca.qualcomm.com
Mon Aug 25 02:18:51 PDT 2014


Michal Kazior <michal.kazior at tieto.com> writes:

> This makes it a lot easier to log and debug
> messages if there's more than 1 ath10k device on a
> system.
>
> Signed-off-by: Michal Kazior <michal.kazior at tieto.com>

Did only a quick review and test but looks good to me except one problem
in pci.c, see below. But there are some conflicts now, can you rebase
please? I hope it's not too much work to fix them.

I'll also summarise the "meat" of the changes so that it's easier for
others to review:

> diff --git a/drivers/net/wireless/ath/ath10k/debug.c b/drivers/net/wireless/ath/ath10k/debug.c
> index df1abe7..57995b9 100644
> --- a/drivers/net/wireless/ath/ath10k/debug.c
> +++ b/drivers/net/wireless/ath/ath10k/debug.c
> @@ -24,25 +24,7 @@
>  /* ms */
>  #define ATH10K_DEBUG_HTT_STATS_INTERVAL 1000
>  
> -static int ath10k_printk(const char *level, const char *fmt, ...)
> -{
> -	struct va_format vaf;
> -	va_list args;
> -	int rtn;
> -
> -	va_start(args, fmt);
> -
> -	vaf.fmt = fmt;
> -	vaf.va = &args;
> -
> -	rtn = printk("%sath10k: %pV", level, &vaf);
> -
> -	va_end(args);
> -
> -	return rtn;
> -}
> -
> -int ath10k_info(const char *fmt, ...)
> +int ath10k_info(struct ath10k *ar, const char *fmt, ...)
>  {
>  	struct va_format vaf = {
>  		.fmt = fmt,
> @@ -52,7 +34,7 @@ int ath10k_info(const char *fmt, ...)
>  
>  	va_start(args, fmt);
>  	vaf.va = &args;
> -	ret = ath10k_printk(KERN_INFO, "%pV", &vaf);
> +	ret = dev_info(ar->dev, "%pV", &vaf);
>  	trace_ath10k_log_info(&vaf);
>  	va_end(args);
>  
> @@ -60,7 +42,7 @@ int ath10k_info(const char *fmt, ...)
>  }
>  EXPORT_SYMBOL(ath10k_info);
>  
> -int ath10k_err(const char *fmt, ...)
> +int ath10k_err(struct ath10k *ar, const char *fmt, ...)
>  {
>  	struct va_format vaf = {
>  		.fmt = fmt,
> @@ -70,7 +52,7 @@ int ath10k_err(const char *fmt, ...)
>  
>  	va_start(args, fmt);
>  	vaf.va = &args;
> -	ret = ath10k_printk(KERN_ERR, "%pV", &vaf);
> +	ret = dev_err(ar->dev, "%pV", &vaf);
>  	trace_ath10k_log_err(&vaf);
>  	va_end(args);
>  
> @@ -78,7 +60,7 @@ int ath10k_err(const char *fmt, ...)
>  }
>  EXPORT_SYMBOL(ath10k_err);
>  
> -int ath10k_warn(const char *fmt, ...)
> +int ath10k_warn(struct ath10k *ar, const char *fmt, ...)
>  {
>  	struct va_format vaf = {
>  		.fmt = fmt,
> @@ -88,10 +70,7 @@ int ath10k_warn(const char *fmt, ...)
>  
>  	va_start(args, fmt);
>  	vaf.va = &args;
> -
> -	if (net_ratelimit())
> -		ret = ath10k_printk(KERN_WARNING, "%pV", &vaf);
> -
> +	dev_warn_ratelimited(ar->dev, "%pV", &vaf);
>  	trace_ath10k_log_warn(&vaf);
>  
>  	va_end(args);

[...]

> @@ -979,7 +959,8 @@ void ath10k_debug_destroy(struct ath10k *ar)
>  #endif /* CONFIG_ATH10K_DEBUGFS */
>  
>  #ifdef CONFIG_ATH10K_DEBUG
> -void ath10k_dbg(enum ath10k_debug_mask mask, const char *fmt, ...)
> +void ath10k_dbg(struct ath10k *ar, enum ath10k_debug_mask mask,
> +		const char *fmt, ...)
>  {
>  	struct va_format vaf;
>  	va_list args;
> @@ -990,7 +971,7 @@ void ath10k_dbg(enum ath10k_debug_mask mask, const char *fmt, ...)
>  	vaf.va = &args;
>  
>  	if (ath10k_debug_mask & mask)
> -		ath10k_printk(KERN_DEBUG, "%pV", &vaf);
> +		dev_printk(KERN_DEBUG, ar->dev, "%pV", &vaf);
>  
>  	trace_ath10k_log_dbg(mask, &vaf);
>  
> @@ -998,13 +979,14 @@ void ath10k_dbg(enum ath10k_debug_mask mask, const char *fmt, ...)
>  }
>  EXPORT_SYMBOL(ath10k_dbg);
>  
> -void ath10k_dbg_dump(enum ath10k_debug_mask mask,
> +void ath10k_dbg_dump(struct ath10k *ar,
> +		     enum ath10k_debug_mask mask,
>  		     const char *msg, const char *prefix,
>  		     const void *buf, size_t len)
>  {
>  	if (ath10k_debug_mask & mask) {
>  		if (msg)
> -			ath10k_dbg(mask, "%s\n", msg);
> +			ath10k_dbg(ar, mask, "%s\n", msg);
>  
>  		print_hex_dump_bytes(prefix, DUMP_PREFIX_OFFSET, buf, len);
>  	}
> diff --git a/drivers/net/wireless/ath/ath10k/debug.h b/drivers/net/wireless/ath/ath10k/debug.h
> index a582499..f5a01d5 100644
> --- a/drivers/net/wireless/ath/ath10k/debug.h
> +++ b/drivers/net/wireless/ath/ath10k/debug.h
> @@ -39,9 +39,9 @@ enum ath10k_debug_mask {
>  
>  extern unsigned int ath10k_debug_mask;
>  
> -__printf(1, 2) int ath10k_info(const char *fmt, ...);
> -__printf(1, 2) int ath10k_err(const char *fmt, ...);
> -__printf(1, 2) int ath10k_warn(const char *fmt, ...);
> +__printf(2, 3) int ath10k_info(struct ath10k *ar, const char *fmt, ...);
> +__printf(2, 3) int ath10k_err(struct ath10k *ar, const char *fmt, ...);
> +__printf(2, 3) int ath10k_warn(struct ath10k *ar, const char *fmt, ...);
>  
>  #ifdef CONFIG_ATH10K_DEBUGFS
>  int ath10k_debug_start(struct ath10k *ar);
> @@ -91,20 +91,24 @@ static inline void ath10k_debug_read_target_stats(struct ath10k *ar,
>  #endif /* CONFIG_ATH10K_DEBUGFS */
>  
>  #ifdef CONFIG_ATH10K_DEBUG
> -__printf(2, 3) void ath10k_dbg(enum ath10k_debug_mask mask,
> +__printf(3, 4) void ath10k_dbg(struct ath10k *ar,
> +			       enum ath10k_debug_mask mask,
>  			       const char *fmt, ...);
> -void ath10k_dbg_dump(enum ath10k_debug_mask mask,
> +void ath10k_dbg_dump(struct ath10k *ar,
> +		     enum ath10k_debug_mask mask,
>  		     const char *msg, const char *prefix,
>  		     const void *buf, size_t len);
>  #else /* CONFIG_ATH10K_DEBUG */
>  
> -static inline int ath10k_dbg(enum ath10k_debug_mask dbg_mask,
> +static inline int ath10k_dbg(struct ath10k *ar,
> +			     enum ath10k_debug_mask dbg_mask,
>  			     const char *fmt, ...)
>  {
>  	return 0;
>  }
>  
> -static inline void ath10k_dbg_dump(enum ath10k_debug_mask mask,
> +static inline void ath10k_dbg_dump(struct ath10k *ar,
> +				   enum ath10k_debug_mask mask,
>  				   const char *msg, const char *prefix,
>  				   const void *buf, size_t len)
>  {

[...]

> @@ -2566,12 +2576,12 @@ static int ath10k_pci_probe(struct pci_dev *pdev,
>  	struct ath10k_pci *ar_pci;
>  	u32 chip_id;
>  
> -	ath10k_dbg(ATH10K_DBG_PCI, "pci probe\n");
> +	dev_printk(KERN_DEBUG, &pdev->dev, "pci probe\n");

But this doesn't look right. A leftover from testing, perhaps?

-- 
Kalle Valo



More information about the ath10k mailing list