On 5 May 2016 at 13:00, Michal Kazior <michal.kazior@xxxxxxxxx> wrote: [...] > -static void ieee80211_drv_tx(struct ieee80211_local *local, > - struct ieee80211_vif *vif, > - struct ieee80211_sta *pubsta, > - struct sk_buff *skb) > +static struct txq_info *ieee80211_get_txq(struct ieee80211_local *local, > + struct ieee80211_vif *vif, > + struct ieee80211_sta *pubsta, > + struct sk_buff *skb) > { > struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data; > - struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); > struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); > - struct ieee80211_tx_control control = { > - .sta = pubsta, > - }; > - struct ieee80211_txq *txq = NULL; > - struct txq_info *txqi; > - u8 ac; > > if ((info->flags & IEEE80211_TX_CTL_SEND_AFTER_DTIM) || > (info->control.flags & IEEE80211_TX_CTRL_PS_RESPONSE)) > - goto tx_normal; > + return NULL; > > if (!ieee80211_is_data(hdr->frame_control)) > - goto tx_normal; > + return NULL; > > if (pubsta) { > u8 tid = skb->priority & IEEE80211_QOS_CTL_TID_MASK; > > - txq = pubsta->txq[tid]; > + return to_txq_info(pubsta->txq[tid]); > } else if (vif) { > - txq = vif->txq; > + return to_txq_info(vif->txq); > } I just noticed this crashes on non-wake_tx_queue drivers. I'll re-spin a v5 with this fixed later. Michał -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html