wifi: mac80211: report all unusable beacon frames
authorBenjamin Berg <benjamin.berg@intel.com>
Wed, 21 Jun 2023 12:05:44 +0000 (14:05 +0200)
committerJakub Kicinski <kuba@kernel.org>
Thu, 22 Jun 2023 05:55:29 +0000 (22:55 -0700)
Properly check for RX_DROP_UNUSABLE now that the new drop reason
infrastructure is used. Without this change, the comparison will always
be false as a more specific reason is given in the lower bits of result.

Fixes: baa951a1c177 ("mac80211: use the new drop reasons infrastructure")
Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Link: https://lore.kernel.org/r/20230621120543.412920-2-johannes@sipsolutions.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/mac80211/rx.c

index d996aa2579dff604691ac143a67ff44999a2eced..fc6e130364da11197190cea65745803b9267ab6e 100644 (file)
@@ -2110,7 +2110,7 @@ ieee80211_rx_h_decrypt(struct ieee80211_rx_data *rx)
        /* either the frame has been decrypted or will be dropped */
        status->flag |= RX_FLAG_DECRYPTED;
 
-       if (unlikely(ieee80211_is_beacon(fc) && result == RX_DROP_UNUSABLE &&
+       if (unlikely(ieee80211_is_beacon(fc) && (result & RX_DROP_UNUSABLE) &&
                     rx->sdata->dev))
                cfg80211_rx_unprot_mlme_mgmt(rx->sdata->dev,
                                             skb->data, skb->len);