Search Linux Wireless

Re: [RFC v2] basic background scan

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

 



On Wed, 2008-09-24 at 16:36 +0200, Helmut Schaa wrote:

> Could somebody please have a look at the TODO comments (I have no idea how
> to wait until all null-func frames are ACKed)? Thanks.

It's not really possible.


> +		if (local->bg_scanning) {
> +			/*
> +			 * background scan is in progress, notify all associated 
> +			 * access points about us leaving the channel and
> +			 * update the filter flags
> +			 */
> +			local->sw_scanning = 1;

use true/false please

> +			rcu_read_lock();
> +			list_for_each_entry_rcu(sdata, &local->interfaces, list) {
> +				if (sdata->vif.type == NL80211_IFTYPE_STATION &&
> +				    (sdata->u.sta.flags & IEEE80211_STA_ASSOCIATED)) {
> +					ieee80211_send_nullfunc(local, sdata, 1);
> +					/* TODO: wait until all nullfunc frames are ACKed */
> +					msleep(1);

I don't think you can msleep here?

> +		break;
> +
> +	case SCAN_OPERATION:	
> +		rcu_read_lock();
> +		list_for_each_entry_rcu(sdata, &local->interfaces, list) {
> +			/* Tell AP we're back */
> +			if (sdata->vif.type == NL80211_IFTYPE_STATION &&
> +			    sdata->u.sta.flags & IEEE80211_STA_ASSOCIATED) {
> +				ieee80211_send_nullfunc(local, sdata, 0);
> +				/* TODO: wait until all nullfunc frames are ACKed */
> +				msleep(1);
> +				netif_tx_wake_all_queues(sdata->dev);

This is worsening a problem we already have -- you can enable queues
that the driver asked to be disabled. Until we fix that, I don't think
we should tempt our luck even more.


> -	if (local->sw_scanning || local->hw_scanning)
> +	if (local->sw_scanning || local->hw_scanning || local->bg_scanning)

I don't really like that. I think these three bools should become an
enum now. And why is sw_scanning false if bg_scanning is true anyway?

johannes

Attachment: signature.asc
Description: This is a digitally signed message part


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux