diff mbox

[1/7] wil6210: ratelimit errors in TX/RX interrupts

Message ID 1503947927-18877-2-git-send-email-qca_merez@qca.qualcomm.com (mailing list archive)
State Accepted
Commit 40cbd88be702a2455b6e047dc13f5d51ed542063
Delegated to: Kalle Valo
Headers show

Commit Message

Maya Erez Aug. 28, 2017, 7:18 p.m. UTC
From: Lior David <qca_liord@qca.qualcomm.com>

Sometimes there is a firmware crash but the hardware
is not fully stopped and continue to send TX/RX interrupts.
This can cause an overload of messages which can bring the
host down. Add ratelimit to these error messages to fix this.

Signed-off-by: Lior David <qca_liord@qca.qualcomm.com>
Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
---
 drivers/net/wireless/ath/wil6210/interrupt.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

Comments

Kalle Valo Aug. 31, 2017, 12:20 p.m. UTC | #1
Maya Erez <qca_merez@qca.qualcomm.com> wrote:

> Sometimes there is a firmware crash but the hardware
> is not fully stopped and continue to send TX/RX interrupts.
> This can cause an overload of messages which can bring the
> host down. Add ratelimit to these error messages to fix this.
> 
> Signed-off-by: Lior David <qca_liord@qca.qualcomm.com>
> Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>

7 patches applied to ath-next branch of ath.git, thanks.

40cbd88be702 wil6210: ratelimit errors in TX/RX interrupts
5f591dac9f20 wil6210: make debugfs compilation optional
761f8e4d463e wil6210: align to latest auto generated wmi.h
1490846d256a wil6210: move pre-FW configuration to separate function
7086d861753b wil6210: clear PAL_UNIT_ICR part of device reset
d83ad4c4fd78 wil6210: increase connect timeout
69fecf599f48 wil6210: ensure P2P device is stopped before removing interface
diff mbox

Patch

diff --git a/drivers/net/wireless/ath/wil6210/interrupt.c b/drivers/net/wireless/ath/wil6210/interrupt.c
index cad8a95..59def4f 100644
--- a/drivers/net/wireless/ath/wil6210/interrupt.c
+++ b/drivers/net/wireless/ath/wil6210/interrupt.c
@@ -244,7 +244,7 @@  static irqreturn_t wil6210_irq_rx(int irq, void *cookie)
 	wil_dbg_irq(wil, "ISR RX 0x%08x\n", isr);
 
 	if (unlikely(!isr)) {
-		wil_err(wil, "spurious IRQ: RX\n");
+		wil_err_ratelimited(wil, "spurious IRQ: RX\n");
 		return IRQ_NONE;
 	}
 
@@ -269,11 +269,12 @@  static irqreturn_t wil6210_irq_rx(int irq, void *cookie)
 				need_unmask = false;
 				napi_schedule(&wil->napi_rx);
 			} else {
-				wil_err(wil,
+				wil_err_ratelimited(
+					wil,
 					"Got Rx interrupt while stopping interface\n");
 			}
 		} else {
-			wil_err(wil, "Got Rx interrupt while in reset\n");
+			wil_err_ratelimited(wil, "Got Rx interrupt while in reset\n");
 		}
 	}
 
@@ -302,7 +303,7 @@  static irqreturn_t wil6210_irq_tx(int irq, void *cookie)
 	wil_dbg_irq(wil, "ISR TX 0x%08x\n", isr);
 
 	if (unlikely(!isr)) {
-		wil_err(wil, "spurious IRQ: TX\n");
+		wil_err_ratelimited(wil, "spurious IRQ: TX\n");
 		return IRQ_NONE;
 	}
 
@@ -318,12 +319,13 @@  static irqreturn_t wil6210_irq_tx(int irq, void *cookie)
 			need_unmask = false;
 			napi_schedule(&wil->napi_tx);
 		} else {
-			wil_err(wil, "Got Tx interrupt while in reset\n");
+			wil_err_ratelimited(wil, "Got Tx interrupt while in reset\n");
 		}
 	}
 
 	if (unlikely(isr))
-		wil_err(wil, "un-handled TX ISR bits 0x%08x\n", isr);
+		wil_err_ratelimited(wil, "un-handled TX ISR bits 0x%08x\n",
+				    isr);
 
 	/* Tx IRQ will be enabled when NAPI processing finished */