ath11k: Avoid REO CMD failed prints during firmware recovery
authorManikanta Pubbisetty <quic_mpubbise@quicinc.com>
Thu, 2 Jun 2022 12:29:29 +0000 (17:59 +0530)
committerKalle Valo <quic_kvalo@quicinc.com>
Mon, 6 Jun 2022 14:09:20 +0000 (17:09 +0300)
Currently when firmware recovery is in progress, we do not queue REO
commands to the firmware, instead -ESHUTDOWN will be returned to the
caller leading to a failure print on the console. The REO command in
the problem scenario is sent for all tids of a peer in which case we
will have 16 failure prints on the console for a single peer. For an
AP usecase, this count would be even higher in a worst case scenario.
Since these commands are bound to fail during firmware recovery, it
is better to avoid printing these failures and thereby avoid message
flooding on the console.

Tested-on: WCN6750 hw1.0 AHB WLAN.MSL.1.0.1-00887-QCAMSLSWPLZ-1

Fixes: 8ee8d38ca472 ("ath11k: Fix crash during firmware recovery on reo cmd ring access")
Signed-off-by: Manikanta Pubbisetty <quic_mpubbise@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20220602122929.18896-1-quic_mpubbise@quicinc.com
drivers/net/wireless/ath/ath11k/dp_rx.c

index e16beb96c37c38376b062c9c70a0a9eafa04477a..2148acf37071ea3bbcc791682fbf5abd5a9da5b2 100644 (file)
@@ -835,8 +835,9 @@ void ath11k_peer_rx_tid_delete(struct ath11k *ar,
                                        HAL_REO_CMD_UPDATE_RX_QUEUE, &cmd,
                                        ath11k_dp_rx_tid_del_func);
        if (ret) {
-               ath11k_err(ar->ab, "failed to send HAL_REO_CMD_UPDATE_RX_QUEUE cmd, tid %d (%d)\n",
-                          tid, ret);
+               if (ret != -ESHUTDOWN)
+                       ath11k_err(ar->ab, "failed to send HAL_REO_CMD_UPDATE_RX_QUEUE cmd, tid %d (%d)\n",
+                                  tid, ret);
                dma_unmap_single(ar->ab->dev, rx_tid->paddr, rx_tid->size,
                                 DMA_BIDIRECTIONAL);
                kfree(rx_tid->vaddr);