Commit fd190dfb authored by Felix Fietkau's avatar Felix Fietkau Committed by Greg Kroah-Hartman

ath9k: remove support for the FIF_PROMISC_IN_BSS filter flag

commit 2e286947 upstream.

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: default avatarFelix Fietkau <nbd@openwrt.org>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent ef9d94d4
...@@ -439,9 +439,7 @@ u32 ath_calcrxfilter(struct ath_softc *sc) ...@@ -439,9 +439,7 @@ u32 ath_calcrxfilter(struct ath_softc *sc)
* mode interface or when in monitor mode. AP mode does not need this * mode interface or when in monitor mode. AP mode does not need this
* since it receives all in-BSS frames anyway. * since it receives all in-BSS frames anyway.
*/ */
if (((sc->sc_ah->opmode != NL80211_IFTYPE_AP) && if (sc->sc_ah->is_monitoring)
(sc->rx.rxfilter & FIF_PROMISC_IN_BSS)) ||
(sc->sc_ah->is_monitoring))
rfilt |= ATH9K_RX_FILTER_PROM; rfilt |= ATH9K_RX_FILTER_PROM;
if (sc->rx.rxfilter & FIF_CONTROL) if (sc->rx.rxfilter & FIF_CONTROL)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment