Search Linux Wireless

[PATCH] ath9k: Fix FIF_BCN_PRBRESP_PROMISC handling

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

 



Alina Friedrichsen wrote:
> diff --git a/drivers/net/wireless/ath9k/hw.h b/drivers/net/wireless/ath9k/hw.h
> index 5ec416b..4d930c7 100644
> --- a/drivers/net/wireless/ath9k/hw.h
> +++ b/drivers/net/wireless/ath9k/hw.h
> @@ -441,6 +441,7 @@ struct ath_hw {
>  	u32 btactive_gpio;
>  	u32 wlanactive_gpio;
>  	u32 ah_flags;
> +	bool bcn_prbresp_promisc;
>  
>  	enum nl80211_iftype opmode;
>  	enum ath9k_power_mode power_mode;
> diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/ath9k/main.c
> index f5f5739..c0d5336 100644
> --- a/drivers/net/wireless/ath9k/main.c
> +++ b/drivers/net/wireless/ath9k/main.c
> @@ -2397,11 +2397,12 @@ static void ath9k_configure_filter(struct ieee80211_hw *hw,
>  	ath9k_hw_setrxfilter(sc->sc_ah, rfilt);
>  
>  	if (changed_flags & FIF_BCN_PRBRESP_PROMISC) {
> -		if (*total_flags & FIF_BCN_PRBRESP_PROMISC) {
> -			memcpy(sc->curbssid, ath_bcast_mac, ETH_ALEN);
> -			sc->curaid = 0;
> -			ath9k_hw_write_associd(sc);
> -		}
> +		if (*total_flags & FIF_BCN_PRBRESP_PROMISC)
> +			sc->sc_ah->bcn_prbresp_promisc = true;
> +		else
> +			sc->sc_ah->bcn_prbresp_promisc = false;
> +
> +		ath9k_hw_write_associd(sc);
>  	}

You don't need a new variable in ath_hal. The RX filter is already cached in
ath_softc during a configure_filter() call.

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