Commit 04de1501 authored by Maya Erez's avatar Maya Erez Committed by Kalle Valo

wil6210: fix L2 RX status handling

L2 RX status errors should not be treated as a bitmap and the actual
error values should be checked.
Print L2 errors as wil_err_ratelimited for easier debugging
when such errors occurs.
Signed-off-by: default avatarMaya Erez <merez@codeaurora.org>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 84ec040d
......@@ -839,23 +839,24 @@ static int wil_rx_error_check_edma(struct wil6210_priv *wil,
wil_dbg_txrx(wil, "L2 RX error, l2_rx_status=0x%x\n",
l2_rx_status);
/* Due to HW issue, KEY error will trigger a MIC error */
if (l2_rx_status & WIL_RX_EDMA_ERROR_MIC) {
wil_dbg_txrx(wil,
"L2 MIC/KEY error, dropping packet\n");
if (l2_rx_status == WIL_RX_EDMA_ERROR_MIC) {
wil_err_ratelimited(wil,
"L2 MIC/KEY error, dropping packet\n");
stats->rx_mic_error++;
}
if (l2_rx_status & WIL_RX_EDMA_ERROR_KEY) {
wil_dbg_txrx(wil, "L2 KEY error, dropping packet\n");
if (l2_rx_status == WIL_RX_EDMA_ERROR_KEY) {
wil_err_ratelimited(wil,
"L2 KEY error, dropping packet\n");
stats->rx_key_error++;
}
if (l2_rx_status & WIL_RX_EDMA_ERROR_REPLAY) {
wil_dbg_txrx(wil,
"L2 REPLAY error, dropping packet\n");
if (l2_rx_status == WIL_RX_EDMA_ERROR_REPLAY) {
wil_err_ratelimited(wil,
"L2 REPLAY error, dropping packet\n");
stats->rx_replay++;
}
if (l2_rx_status & WIL_RX_EDMA_ERROR_AMSDU) {
wil_dbg_txrx(wil,
"L2 AMSDU error, dropping packet\n");
if (l2_rx_status == WIL_RX_EDMA_ERROR_AMSDU) {
wil_err_ratelimited(wil,
"L2 AMSDU error, dropping packet\n");
stats->rx_amsdu_error++;
}
return -EFAULT;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment