mac80211: check per vif offload_flags in Tx path
authorRyder Lee <ryder.lee@mediatek.com>
Thu, 17 Jun 2021 20:38:59 +0000 (04:38 +0800)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 23 Jun 2021 09:29:13 +0000 (11:29 +0200)
offload_flags has been introduced to indicate encap status of each interface.
An interface can encap offload at runtime, or if it has some extra limitations
it can simply override the flags, so it's more flexible to check offload_flags
in Tx path.

Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Link: https://lore.kernel.org/r/177785418cf407808bf3a44760302d0647076990.1623961575.git.ryder.lee@mediatek.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/tx.c

index ac506245bb940a137cb3cb5afa682c818066d812..caa7caa89ab92a339b09437c6c0ac12c229bcb6b 100644 (file)
@@ -3287,6 +3287,9 @@ static bool ieee80211_amsdu_aggregate(struct ieee80211_sub_if_data *sdata,
        if (!ieee80211_hw_check(&local->hw, TX_AMSDU))
                return false;
 
+       if (sdata->vif.offload_flags & IEEE80211_OFFLOAD_ENCAP_ENABLED)
+               return false;
+
        if (skb_is_gso(skb))
                return false;