|
@@ -1845,6 +1845,7 @@ int ath_tx_start(struct ieee80211_hw *hw, struct sk_buff *skb,
|
|
|
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
|
|
|
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
|
|
|
struct ieee80211_sta *sta = info->control.sta;
|
|
|
+ struct ieee80211_vif *vif = info->control.vif;
|
|
|
struct ath_softc *sc = hw->priv;
|
|
|
struct ath_txq *txq = txctl->txq;
|
|
|
struct ath_buf *bf;
|
|
@@ -1882,6 +1883,11 @@ int ath_tx_start(struct ieee80211_hw *hw, struct sk_buff *skb,
|
|
|
memmove(skb->data, skb->data + padsize, padpos);
|
|
|
}
|
|
|
|
|
|
+ if ((vif && vif->type != NL80211_IFTYPE_AP &&
|
|
|
+ vif->type != NL80211_IFTYPE_AP_VLAN) ||
|
|
|
+ !ieee80211_is_data(hdr->frame_control))
|
|
|
+ info->flags |= IEEE80211_TX_CTL_CLEAR_PS_FILT;
|
|
|
+
|
|
|
setup_frame_info(hw, skb, frmlen);
|
|
|
|
|
|
/*
|