[rt2x00-users] [PATCH] Fix regression in rt2500pci

Helmut Schaa helmut.schaa at googlemail.com
Thu Jul 22 07:07:24 AEST 2010


Am Mittwoch 21 Juli 2010 schrieb Ivo van Doorn:
> rt2x00: Fix regression for rt2500pci
>     
> Since commit:
>       commit f1aa4c541e98afa8b770a75ccaa8504d0bff44a7
>       Author: Ivo van Doorn <ivdoorn at gmail.com>
>       Date:   Tue Jun 29 21:38:55 2010 +0200
> 
>       rt2x00: Write the BSSID to register when interface is added
>     
> mananged mode in rt2500pci was broken, due to intf->bssid containing
> random data rather then the expected 00:00:00:00:00:00
> This correctly memsets the memory to guarantee the empty BSSID address.
>     
> Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>

Thanks Ivo. However, the commit message looks a bit strange to me, there's
no memset in the code at all ;)

Nevertheless for the code part:

Acked-by: Helmut Schaa <helmut.schaa at googlemail.com>

> ---
> diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c
> index 4d8d232..235e037 100644
> --- a/drivers/net/wireless/rt2x00/rt2x00mac.c
> +++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
> @@ -273,17 +273,24 @@ int rt2x00mac_add_interface(struct ieee80211_hw *hw,
>  	mutex_init(&intf->beacon_skb_mutex);
>  	intf->beacon = entry;
>  
> -	if (vif->type == NL80211_IFTYPE_AP)
> -		memcpy(&intf->bssid, vif->addr, ETH_ALEN);
> -	memcpy(&intf->mac, vif->addr, ETH_ALEN);
> -
>  	/*
>  	 * The MAC adddress must be configured after the device
>  	 * has been initialized. Otherwise the device can reset
>  	 * the MAC registers.
> +	 * The BSSID address must only be configured in AP mode,
> +	 * however we should not send an empty BSSID address for
> +	 * STA interfaces at this time, since this can cause
> +	 * invalid behavior in the device.
>  	 */
> -	rt2x00lib_config_intf(rt2x00dev, intf, vif->type,
> -			      intf->mac, intf->bssid);
> +	memcpy(&intf->mac, vif->addr, ETH_ALEN);
> +	if (vif->type == NL80211_IFTYPE_AP) {
> +		memcpy(&intf->bssid, vif->addr, ETH_ALEN);
> +		rt2x00lib_config_intf(rt2x00dev, intf, vif->type,
> +				      intf->mac, intf->bssid);
> +	} else {
> +		rt2x00lib_config_intf(rt2x00dev, intf, vif->type,
> +				      intf->mac, NULL);
> +	}
>  
>  	/*
>  	 * Some filters depend on the current working mode. We can force
> 





More information about the users mailing list