mac80211: minstrel_ht: don't use control.flags in TX status path
authorJohannes Berg <johannes.berg@intel.com>
Thu, 22 Aug 2013 06:36:41 +0000 (08:36 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 22 Aug 2013 06:37:08 +0000 (08:37 +0200)
Sujith reports that my commit af61a165187bb94b1dc7628ef815c23d0eacf40b
("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>
net/mac80211/rc80211_minstrel_ht.c

index 9eff3824f2d12adcf4d5fc0461f72b3e0cce88cd..c397ff54fe71422f417b27d79663a19b3db71e40 100644 (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 sta_info *sta = container_of(pubsta, struct sta_info, sta);
-       struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
        u16 tid;
 
        if (unlikely(!ieee80211_is_data_qos(hdr->frame_control)))
                return;
 
-       if (unlikely(info->control.flags & IEEE80211_TX_CTRL_PORT_CTRL_PROTO))
+       if (unlikely(skb->protocol == cpu_to_be16(ETH_P_PAE)))
                return;
 
        tid = *ieee80211_get_qos_ctl(hdr) & IEEE80211_QOS_CTL_TID_MASK;