wifi: iwlegacy: do not skip frames with bad FCS
authorAndrii Batyiev <batyiev@gmail.com>
Thu, 9 May 2024 10:11:25 +0000 (13:11 +0300)
committerKalle Valo <kvalo@kernel.org>
Tue, 14 May 2024 13:31:09 +0000 (16:31 +0300)
Monitor/sniffer mode benefits from all types of frames, even if FCS
check fails. But we must mark frames as such.

Tested on iwl3945 only.

Signed-off-by: Andrii Batyiev <batyiev@gmail.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240509101140.32664-1-batyiev@gmail.com
drivers/net/wireless/intel/iwlegacy/3945.c
drivers/net/wireless/intel/iwlegacy/4965-mac.c

index a773939..1fab784 100644 (file)
@@ -566,7 +566,7 @@ il3945_hdl_rx(struct il_priv *il, struct il_rx_buf *rxb)
        if (!(rx_end->status & RX_RES_STATUS_NO_CRC32_ERROR) ||
            !(rx_end->status & RX_RES_STATUS_NO_RXE_OVERFLOW)) {
                D_RX("Bad CRC or FIFO: 0x%08X.\n", rx_end->status);
-               return;
+               rx_status.flag |= RX_FLAG_FAILED_FCS_CRC;
        }
 
        /* Convert 3945's rssi indicator to dBm */
index 4beb7be..d018f56 100644 (file)
@@ -664,7 +664,7 @@ il4965_hdl_rx(struct il_priv *il, struct il_rx_buf *rxb)
        if (!(rx_pkt_status & RX_RES_STATUS_NO_CRC32_ERROR) ||
            !(rx_pkt_status & RX_RES_STATUS_NO_RXE_OVERFLOW)) {
                D_RX("Bad CRC or FIFO: 0x%08X.\n", le32_to_cpu(rx_pkt_status));
-               return;
+               rx_status.flag |= RX_FLAG_FAILED_FCS_CRC;
        }
 
        /* This will be used in several places later */