Search Linux Wireless

Re: [RFC 1/3] mac80211: Add flushes to ensure off-channel PS is enabled during sw scans

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux