aboutsummaryrefslogtreecommitdiffstats
path: root/src/drivers
diff options
context:
space:
mode:
authorPontus Fuchs <pontus.fuchs@gmail.com>2011-12-30 10:19:35 +0100
committerArik Nemtsov <arik@wizery.com>2012-08-02 13:03:59 +0300
commite37b3c4d5c381526af9cff438eacebbf2b6715d6 (patch)
tree2003593ad716a08a29b127da9112ee2964037154 /src/drivers
parentf9a7551a806135f6339cb42137849165bb360c49 (diff)
downloadexternal_wpa_supplicant_8_ti-e37b3c4d5c381526af9cff438eacebbf2b6715d6.zip
external_wpa_supplicant_8_ti-e37b3c4d5c381526af9cff438eacebbf2b6715d6.tar.gz
external_wpa_supplicant_8_ti-e37b3c4d5c381526af9cff438eacebbf2b6715d6.tar.bz2
driver_nl80211: Enable only unicast RXFILTER by default
In GB the framework always enabled RXFILTER for unicast and bcast. This seems to be missing in ICS so enable unicast by default as this is always required. Signed-off-by: Pontus Fuchs <pontus.fuchs@gmail.com> Signed-off-by: Eyal Shapira <eyal@wizery.com>
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/driver_nl80211.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
index 59d278e..86ce8bf 100644
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -9035,6 +9035,7 @@ static int nl80211_set_wowlan_triggers(struct i802_bss *bss, int enable)
struct nl_msg *msg, *pats = NULL;
struct nlattr *wowtrig, *pat;
int i, ret = -1;
+ int filters;
bss->drv->wowlan_enabled = !!enable;
@@ -9062,12 +9063,20 @@ static int nl80211_set_wowlan_triggers(struct i802_bss *bss, int enable)
goto nla_put_failure;
}
+ /*
+ * In GB filters 0 and 1 are always set but in ICS they
+ * were completely removed. Add filter 0 (unicast) by default
+ * so unicast traffic won't be dropped in any case.
+ */
+
+ filters = bss->drv->wowlan_triggers |= 1;
+
for (i = 0; i < NR_RX_FILTERS; i++) {
struct rx_filter *rx_filter = &rx_filters[i];
int patnr = 1;
u8 *pattern;
- if (!(bss->drv->wowlan_triggers & (1 << i)))
+ if (!(filters & (1 << i)))
continue;
pattern = nl80211_rx_filter_get_pattern(rx_filter, bss);