diff mbox series

[v2] wlcore: sdio: Rate limit wl12xx_sdio_raw_{read,write}() failures warns

Message ID 20240228101042.728881-1-javierm@redhat.com (mailing list archive)
State Accepted
Commit f6e36d9e1c6353b74f1511ea18aa7c6fddd6e697
Delegated to: Kalle Valo
Headers show
Series [v2] wlcore: sdio: Rate limit wl12xx_sdio_raw_{read,write}() failures warns | expand

Commit Message

Javier Martinez Canillas Feb. 28, 2024, 10:10 a.m. UTC
When these failures happen, the warning and call trace is printed which is
excessive. Instead, just print the error but rate limited to prevent warns
to unnecessarily pollute the kernel log buffer and make the serial console
practically unusable.

For example, on an AM625 BeaglePlay board where accessing a SDIO WiFi chip
fails with an -110 (ETIMEDOUT) error:

  $ dmesg | grep "sdio write\|read failed (-110)" | wc -l
  39

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
Reviewed-by: Breno Leitao <leitao@debian.org>
---

Changes in v2:
- Add Reviewed-by tag by Breno Leitao.
- Drop warns which seems excesive and rate limit the error (Kalle Vallo).

 drivers/net/wireless/ti/wlcore/sdio.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Kalle Valo March 5, 2024, 6:53 p.m. UTC | #1
Javier Martinez Canillas <javierm@redhat.com> wrote:

> When these failures happen, the warning and call trace is printed which is
> excessive. Instead, just print the error but rate limited to prevent warns
> to unnecessarily pollute the kernel log buffer and make the serial console
> practically unusable.
> 
> For example, on an AM625 BeaglePlay board where accessing a SDIO WiFi chip
> fails with an -110 (ETIMEDOUT) error:
> 
>   $ dmesg | grep "sdio write\|read failed (-110)" | wc -l
>   39
> 
> Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
> Reviewed-by: Breno Leitao <leitao@debian.org>

Patch applied to wireless-next.git, thanks.

f6e36d9e1c63 wifi: wlcore: sdio: Rate limit wl12xx_sdio_raw_{read,write}() failures warns
diff mbox series

Patch

diff --git a/drivers/net/wireless/ti/wlcore/sdio.c b/drivers/net/wireless/ti/wlcore/sdio.c
index eb5482ed76ae..70b9648acaaf 100644
--- a/drivers/net/wireless/ti/wlcore/sdio.c
+++ b/drivers/net/wireless/ti/wlcore/sdio.c
@@ -75,8 +75,8 @@  static int __must_check wl12xx_sdio_raw_read(struct device *child, int addr,
 
 	sdio_release_host(func);
 
-	if (WARN_ON(ret))
-		dev_err(child->parent, "sdio read failed (%d)\n", ret);
+	if (ret)
+		dev_err_ratelimited(child->parent, "sdio read failed (%d)\n", ret);
 
 	if (unlikely(dump)) {
 		printk(KERN_DEBUG "wlcore_sdio: READ from 0x%04x\n", addr);
@@ -120,8 +120,8 @@  static int __must_check wl12xx_sdio_raw_write(struct device *child, int addr,
 
 	sdio_release_host(func);
 
-	if (WARN_ON(ret))
-		dev_err(child->parent, "sdio write failed (%d)\n", ret);
+	if (ret)
+		dev_err_ratelimited(child->parent, "sdio write failed (%d)\n", ret);
 
 	return ret;
 }