On 2021-06-17 20:53, Ryder Lee wrote: > 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@xxxxxxxxxxxx> > --- > net/mac80211/tx.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c > index 0a4bc9e08637..8cb1289c704a 100644 > --- a/net/mac80211/tx.c > +++ b/net/mac80211/tx.c > @@ -3695,7 +3698,8 @@ struct sk_buff *ieee80211_tx_dequeue(struct ieee80211_hw *hw, > } > > if (skb_has_frag_list(skb) && > - !ieee80211_hw_check(&local->hw, TX_FRAG_LIST)) { > + (!ieee80211_hw_check(&local->hw, TX_FRAG_LIST) || > + vif->offload_flags & IEEE80211_OFFLOAD_ENCAP_ENABLED)) { > if (skb_linearize(skb)) { > ieee80211_free_txskb(&local->hw, skb); > goto begin; I think this chunk should be dropped. - Felix