|
@@ -804,6 +804,9 @@ ieee80211_tx_h_sequence(struct ieee80211_tx_data *tx)
|
|
|
if (ieee80211_hdrlen(hdr->frame_control) < 24)
|
|
|
return TX_CONTINUE;
|
|
|
|
|
|
+ if (ieee80211_is_qos_nullfunc(hdr->frame_control))
|
|
|
+ return TX_CONTINUE;
|
|
|
+
|
|
|
/*
|
|
|
* Anything but QoS data that has a sequence number field
|
|
|
* (is long enough) gets a sequence number from the global
|
|
@@ -1236,6 +1239,7 @@ ieee80211_tx_prepare(struct ieee80211_sub_if_data *sdata,
|
|
|
tx->sta = sta_info_get(sdata, hdr->addr1);
|
|
|
|
|
|
if (tx->sta && ieee80211_is_data_qos(hdr->frame_control) &&
|
|
|
+ !ieee80211_is_qos_nullfunc(hdr->frame_control) &&
|
|
|
(local->hw.flags & IEEE80211_HW_AMPDU_AGGREGATION) &&
|
|
|
!(local->hw.flags & IEEE80211_HW_TX_AMPDU_SETUP_IN_HW)) {
|
|
|
struct tid_ampdu_tx *tid_tx;
|