wil6210: Rate limit "ring full" error message
authorVladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Mon, 1 Dec 2014 13:36:03 +0000 (15:36 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 1 Dec 2014 20:57:23 +0000 (15:57 -0500)
In the wil_tx_ring, error message printed when tx attempted
while vring has no space to accommodate all fragments of frame.
Normally, such situation handled by stopping tx queue.
But, if tx queue is by-passed (like pktgen does), this error
will be triggered at high rate and dmesg will be flooded with
this message. Whole system may become unstable and hang with
no possible recover except power cycle.

Rate-limit it to prevent dmesg flooding.

Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/wil6210/txrx.c

index c3a548967c791aa26613607b471cbb0e41843b8e..405ede655be5f40eabdd0cad7c642f0b01b0eada 100644 (file)
@@ -928,8 +928,9 @@ static int wil_tx_vring(struct wil6210_priv *wil, struct vring *vring,
        wil_dbg_txrx(wil, "%s()\n", __func__);
 
        if (avail < 1 + nr_frags) {
-               wil_err(wil, "Tx ring full. No space for %d fragments\n",
-                       1 + nr_frags);
+               wil_err_ratelimited(wil,
+                                   "Tx ring full. No space for %d fragments\n",
+                                   1 + nr_frags);
                return -ENOMEM;
        }
        _d = &vring->va[i].tx;