Search Linux Wireless

Re: [PATCH v3] mac80211: Allow scanning single channel if other VIF is associated.

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

 



On Wed, 2010-09-29 at 08:30 -0700, Ben Greear wrote:

> Does this portion seem useful as a stand-alone patch?  It does not
> depend on the other scan-one logic.

Somewhat, but it seems a bit buggy?

> diff --git a/net/mac80211/work.c b/net/mac80211/work.c
> index ae344d1..1bfc1e0 100644
> --- a/net/mac80211/work.c
> +++ b/net/mac80211/work.c
> @@ -910,12 +910,17 @@ static void ieee80211_work_work(struct work_struct *work)
>   			 *	 happen to be on the same channel as
>   			 *	 the requested channel
>   			 */
> -			ieee80211_offchannel_stop_beaconing(local);
> -			ieee80211_offchannel_stop_station(local);
> -
> -			local->tmp_channel = wk->chan;
> -			local->tmp_channel_type = wk->chan_type;
> -			ieee80211_hw_config(local, 0);
> +			if (!(wk->chan == local->scan_channel ||
> +			      (wk->chan == local->oper_channel &&

I don't think work items will ever run while scanning? And also, this
might need to check the channel type as well, which isn't quite
necessary right now (since no works requires HT channels) but would seem
cleaner.

> +			       !local->scan_channel))) {
> +				/* Only change channels if we need to */
> +				ieee80211_offchannel_stop_beaconing(local);
> +				ieee80211_offchannel_stop_station(local);
> +
> +				local->tmp_channel = wk->chan;
> +				local->tmp_channel_type = wk->chan_type;
> +				ieee80211_hw_config(local, 0);
> +			}
>   			started = true;
>   			wk->timeout = jiffies;

Also, I believe it needs matching code to not do all the return stuff
since we never left the channel, and I think it still needs to set
tmp_channel so that nothing will switch away underneath or so... not
quite sure.

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 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