Hi, Seems reasonable to me, all in all, but > @@ -3934,7 +3932,8 @@ void __ieee80211_subif_start_xmit(struct sk_buff *skb, > if (IS_ERR(sta)) > sta = NULL; > > - if (local->ops->wake_tx_queue) { > + if (local->ops->wake_tx_queue || > + skb->protocol == sdata->control_port_protocol) { > u16 queue = __ieee80211_select_queue(sdata, sta, skb); > skb_set_queue_mapping(skb, queue); > skb_get_hash(skb); I don't understand this part. Why not do the necessary setup in ieee80211_tx_control_port(), instead of potentially overwriting it for EAPOL-over-AF_PACKET frames here? johannes