aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ralink/rt2x00/rt2x00config.c
diff options
context:
space:
mode:
authorEli Cooper <elicooper@gmx.com>2016-01-18 19:30:19 +0800
committerKalle Valo <kvalo@codeaurora.org>2016-01-25 15:19:48 +0200
commit262c741e0825b29447a9e53b6582afd6b14c3706 (patch)
treedc819eeec0178daf1a7eb5e4598a28c31ff53a18 /drivers/net/wireless/ralink/rt2x00/rt2x00config.c
parentbrcmfmac: fix sdio sg table alloc crash (diff)
downloadlinux-dev-262c741e0825b29447a9e53b6582afd6b14c3706.tar.xz
linux-dev-262c741e0825b29447a9e53b6582afd6b14c3706.zip
rt2x00: fix monitor mode regression
Since commit df1404650ccb ("mac80211: remove support for IFF_PROMISC") monitor mode for rt2x00 has been made effectively useless because the hardware filter is configured to drop packets whose intended recipient is not the device, regardless of the presence of monitor mode interfaces. This patch fixes this regression by adding explicit monitor mode support, and by configuring the hardware filter accordingly. Signed-off-by: Eli Cooper <elicooper@gmx.com> Acked-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/ralink/rt2x00/rt2x00config.c')
-rw-r--r--drivers/net/wireless/ralink/rt2x00/rt2x00config.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00config.c b/drivers/net/wireless/ralink/rt2x00/rt2x00config.c
index 7e8bb1198ae9..6a1f508d472f 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00config.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00config.c
@@ -277,6 +277,11 @@ void rt2x00lib_config(struct rt2x00_dev *rt2x00dev,
else
clear_bit(CONFIG_POWERSAVING, &rt2x00dev->flags);
+ if (conf->flags & IEEE80211_CONF_MONITOR)
+ set_bit(CONFIG_MONITORING, &rt2x00dev->flags);
+ else
+ clear_bit(CONFIG_MONITORING, &rt2x00dev->flags);
+
rt2x00dev->curr_band = conf->chandef.chan->band;
rt2x00dev->curr_freq = conf->chandef.chan->center_freq;
rt2x00dev->tx_power = conf->power_level;