All of lore.kernel.org
 help / color / mirror / Atom feed
From: Felix Fietkau <nbd@openwrt.org>
To: Ben Greear <greearb@candelatech.com>
Cc: linux-wireless@vger.kernel.org, linville@tuxdriver.com,
	lrodriguez@atheros.com, Kyungwan.Nam@atheros.com
Subject: Re: [PATCH 2.6.38] ath9k: remove support for the FIF_PROMISC_IN_BSS filter flag
Date: Wed, 09 Mar 2011 02:15:41 +0100	[thread overview]
Message-ID: <4D76D4BD.7070509@openwrt.org> (raw)
In-Reply-To: <4D76D2C3.2000909@candelatech.com>

On 2011-03-09 2:07 AM, Ben Greear wrote:
> On 03/08/2011 04:48 PM, Felix Fietkau wrote:
>> The hardware rx filter flag triggered by FIF_PROMISC_IN_BSS is overly broad
>> and covers even frames with PHY errors. When this flag is enabled, this message
>> shows up frequently during scanning or hardware resets:
>>
>> ath: Could not stop RX, we could be confusing the DMA engine when we start RX up
>>
>> Since promiscuous mode is usually not particularly useful, yet enabled by
>> default by bridging (either used normally in 4-addr mode, or with hacks
>> for various virtualization software), we should sacrifice it for better
>> reliability during normal operation.
>>
>> This patch leaves it enabled if there are active monitor mode interfaces, since
>> it's very useful for debugging.
>>
>> Signed-off-by: Felix Fietkau<nbd@openwrt.org>
>> Cc: stable@kernel.org
>> ---
>>   drivers/net/wireless/ath/ath9k/recv.c |    4 +---
>>   1 files changed, 1 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c
>> index cb559e3..a9c3f46 100644
>> --- a/drivers/net/wireless/ath/ath9k/recv.c
>> +++ b/drivers/net/wireless/ath/ath9k/recv.c
>> @@ -413,9 +413,7 @@ u32 ath_calcrxfilter(struct ath_softc *sc)
>>   	 * mode interface or when in monitor mode. AP mode does not need this
>>   	 * since it receives all in-BSS frames anyway.
>>   	 */
>> -	if (((sc->sc_ah->opmode != NL80211_IFTYPE_AP)&&
>> -	     (sc->rx.rxfilter&  FIF_PROMISC_IN_BSS)) ||
>> -	    (sc->sc_ah->is_monitoring))
>> +	if (sc->sc_ah->is_monitoring)
>>   		rfilt |= ATH9K_RX_FILTER_PROM;
>>
>>   	if (sc->rx.rxfilter&  FIF_CONTROL)
> 
> Should we enable this flag if we have multiple STA
> interfaces?  I had to add something to ath5k recently
> to put it into promisc to properly handle multiple STAs
> associated with different APs, for instance.
No, multiple interfaces is handled by the BSSID mask.

> Do you have any idea *why* enabling this flag causes the DMA error
> messages?
I don't know why exactly it happens, but it probably cannot be explained
without going to the details of the inner workings of the MAC/baseband
interaction. But as I mentioned in the description, this flag is overly
broad and doesn't just bypass the address match, but lets all kinds of
other crap through as well - in many situations where even 'normal'
promiscuous behavior would be completely useless.
I think because of that, disabling it for non-monitor operation is the
right thing to do.

- Felix

  reply	other threads:[~2011-03-09  1:15 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-09  0:48 [PATCH 2.6.38] ath9k: remove support for the FIF_PROMISC_IN_BSS filter flag Felix Fietkau
2011-03-09  1:07 ` Ben Greear
2011-03-09  1:15   ` Felix Fietkau [this message]
2011-03-15 20:51     ` Luis R. Rodriguez
2011-03-15 21:04       ` Felix Fietkau
2011-03-09  2:56 ` Rajkumar Manoharan
2011-03-09  3:00   ` Ben Greear

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D76D4BD.7070509@openwrt.org \
    --to=nbd@openwrt.org \
    --cc=Kyungwan.Nam@atheros.com \
    --cc=greearb@candelatech.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@tuxdriver.com \
    --cc=lrodriguez@atheros.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.