On Tue, 2013-01-08 at 12:10 -0600, Seth Forshee wrote: > +++ b/net/mac80211/offchannel.c > @@ -136,8 +136,23 @@ void ieee80211_offchannel_stop_vifs(struct ieee80211_local *local, > netif_tx_stop_all_queues(sdata->dev); > if (offchannel_ps_enable && > (sdata->vif.type == NL80211_IFTYPE_STATION) && > - sdata->u.mgd.associated) > + sdata->u.mgd.associated) { > + /* > + * Need to flush frames in driver queues > + * before sending nullfunc. Otherwise > + * devices which support QoS may send the > + * nullfunc before these queued frames, and > + * those frames may not have PM set. > + * > + * XXX: Would be nice to not flush for each > + * vif, however I don't see that there's any > + * protection to prevent frames being handed > + * to the driver before stopping the netdev > + * queue. > + */ > + drv_flush(local, false); > ieee80211_offchannel_ps_enable(sdata); Could we split the loop, and send the frames in a second loop, to combine the flushes into a single one? johannes -- 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