wifi: iwlwifi: mvm: don't do duplicate detection for nullfunc packets
authorJohannes Berg <johannes.berg@intel.com>
Mon, 5 Feb 2024 19:21:15 +0000 (21:21 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 8 Feb 2024 14:00:48 +0000 (15:00 +0100)
For non-QoS nullfunc packets we currently do the duplicate detection,
which seems a bit wrong. Fix the code to check for _any_ instead of
just _qos_ nullfunc.

Also remove setting the RX_FLAG_DUP_VALIDATED flag, we haven't done
anything here; in particular, we haven't checked for multicast in an
MLO scenario.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240205211151.4fea3bd2d4a6.Ib80764f4581d875cff08469016894f7c817c3828@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c

index 7c0da3b8ad77af6de9a6ad783a70ba24b086d0fd..b7639e4298895bee7cb655b4c7a8562732b207ba 100644 (file)
@@ -519,11 +519,9 @@ static bool iwl_mvm_is_dup(struct ieee80211_sta *sta, int queue,
         * (IEEE 802.11-2012: 9.3.2.10 "Duplicate detection and recovery")
         */
        if (ieee80211_is_ctl(hdr->frame_control) ||
-           ieee80211_is_qos_nullfunc(hdr->frame_control) ||
-           is_multicast_ether_addr(hdr->addr1)) {
-               rx_status->flag |= RX_FLAG_DUP_VALIDATED;
+           ieee80211_is_any_nullfunc(hdr->frame_control) ||
+           is_multicast_ether_addr(hdr->addr1))
                return false;
-       }
 
        if (ieee80211_is_data_qos(hdr->frame_control)) {
                /* frame has qos control */