Search Linux Wireless

Re: [PATCH] wl12xx: Unset bssid filter, ssid and bssid from firmware on disassoc

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

 



On Wed, 2010-11-17 at 15:29 +0200, juuso.oikarinen@xxxxxxxxx wrote:
> From: Juuso Oikarinen <juuso.oikarinen@xxxxxxxxx>
> 
> On the disassociation event from the mac80211, the wl12xx driver does not
> clear the chipset configuration related to the AP - i.e. it does not perform
> a DISCONNECT and then a JOIN with zero SSID and dummy BSSID. Also, it does not
> unset the BSSID filter.
> 
> Often this is not a problem, as the above is performed upon entering idle
> state. But if a scenario arises where a new association is attempted without
> cycling through idle state, the new association will fail.
> 
> Fix this by resetting the firmware state on disassociation.
> 
> Signed-off-by: Juuso Oikarinen <juuso.oikarinen@xxxxxxxxx>
> ---
>  drivers/net/wireless/wl12xx/main.c |    4 ++++
>  1 files changed, 4 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c
> index 31f0e2f..c523778 100644
> --- a/drivers/net/wireless/wl12xx/main.c
> +++ b/drivers/net/wireless/wl12xx/main.c
> @@ -2012,6 +2012,10 @@ static void wl1271_op_bss_info_changed(struct ieee80211_hw *hw,
>  			/* Disable the keep-alive feature */
>  			ret = wl1271_acx_keep_alive_mode(wl, false);
>  
> +			/* restore the bssid filter and go to dummy bssid */
> +			wl1271_handle_idle(wl, true);
> +			wl1271_handle_idle(wl, false);
> +

Hmmm... This looks quite hacky.  Can 't you create functions with that
"restore the bssid" and "go to dummy bssid" and call them instead? If
you do so, you don't have to artificially go to idle and leave idle
immediately...

-- 
Cheers,
Luca.

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