mac80211: refactor rc_no_data_or_no_ack_use_min function
authorPhilipp Borgers <borgers@mi.fu-berlin.de>
Wed, 19 May 2021 12:20:19 +0000 (14:20 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 23 Jun 2021 09:01:49 +0000 (11:01 +0200)
Use newly introduced helper function ieee80211_is_tx_data to check if
frame is a data frame. Takes into account that hardware encapsulation
can be enabled for a frame and therefore no ieee80211 header is present.

Signed-off-by: Philipp Borgers <borgers@mi.fu-berlin.de>
Link: https://lore.kernel.org/r/20210519122019.92359-4-borgers@mi.fu-berlin.de
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/rate.c

index 01d6407b02792a855f40f4d31754e75b2e5a5f29..9418daa52f68de57ebf0e0fb4513c75a5856632e 100644 (file)
@@ -297,15 +297,11 @@ void ieee80211_check_rate_mask(struct ieee80211_sub_if_data *sdata)
 static bool rc_no_data_or_no_ack_use_min(struct ieee80211_tx_rate_control *txrc)
 {
        struct sk_buff *skb = txrc->skb;
-       struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
        struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
-       __le16 fc;
-
-       fc = hdr->frame_control;
 
        return (info->flags & (IEEE80211_TX_CTL_NO_ACK |
                               IEEE80211_TX_CTL_USE_MINRATE)) ||
-               !ieee80211_is_data(fc);
+               !ieee80211_is_tx_data(skb);
 }
 
 static void rc_send_low_basicrate(struct ieee80211_tx_rate *rate,