mac80211: minstrel_ht: don't use control.flags in TX status path

Sujith reports that my commit af61a16518
("mac80211: add control port protocol TX control flag") broke ath9k
(aggregation). The reason is that I made minstrel_ht use the flag in
the TX status path, where it can have been overwritten by the driver.
Since we have no more space in info->flags, revert that part of the
change for now, until we can reshuffle the flags or so.

Reported-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Johannes Berg 2013-08-22 08:36:41 +02:00
parent 27b3eb9c06
commit e133fae263
1 changed files with 1 additions and 2 deletions

View File

@ -439,13 +439,12 @@ minstrel_aggr_check(struct ieee80211_sta *pubsta, struct sk_buff *skb)
{ {
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data; struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
struct sta_info *sta = container_of(pubsta, struct sta_info, sta); struct sta_info *sta = container_of(pubsta, struct sta_info, sta);
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
u16 tid; u16 tid;
if (unlikely(!ieee80211_is_data_qos(hdr->frame_control))) if (unlikely(!ieee80211_is_data_qos(hdr->frame_control)))
return; return;
if (unlikely(info->control.flags & IEEE80211_TX_CTRL_PORT_CTRL_PROTO)) if (unlikely(skb->protocol == cpu_to_be16(ETH_P_PAE)))
return; return;
tid = *ieee80211_get_qos_ctl(hdr) & IEEE80211_QOS_CTL_TID_MASK; tid = *ieee80211_get_qos_ctl(hdr) & IEEE80211_QOS_CTL_TID_MASK;