wl12xx: AP mode - change filter config
authorArik Nemtsov <arik@wizery.com>
Sat, 16 Oct 2010 17:25:35 +0000 (19:25 +0200)
committerLuciano Coelho <coelho@ti.com>
Mon, 24 Jan 2011 20:11:49 +0000 (22:11 +0200)
Do not configure a group address table in AP mode

Signed-off-by: Arik Nemtsov <arik@wizery.com>
Reviewed-by: Luciano Coelho <coelho@ti.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
drivers/net/wireless/wl12xx/main.c

index 01f3f0264fb455772ba7612f154c73327742f972..8e5d435f63f7062fdda0af2f2aa257b8b3f7de6d 100644 (file)
@@ -1578,7 +1578,8 @@ static void wl1271_op_configure_filter(struct ieee80211_hw *hw,
        struct wl1271 *wl = hw->priv;
        int ret;
 
-       wl1271_debug(DEBUG_MAC80211, "mac80211 configure filter");
+       wl1271_debug(DEBUG_MAC80211, "mac80211 configure filter changed %x"
+                    " total %x", changed, *total);
 
        mutex_lock(&wl->mutex);
 
@@ -1592,15 +1593,16 @@ static void wl1271_op_configure_filter(struct ieee80211_hw *hw,
        if (ret < 0)
                goto out;
 
-
-       if (*total & FIF_ALLMULTI)
-               ret = wl1271_acx_group_address_tbl(wl, false, NULL, 0);
-       else if (fp)
-               ret = wl1271_acx_group_address_tbl(wl, fp->enabled,
-                                                  fp->mc_list,
-                                                  fp->mc_list_length);
-       if (ret < 0)
-               goto out_sleep;
+       if (wl->bss_type != BSS_TYPE_AP_BSS) {
+               if (*total & FIF_ALLMULTI)
+                       ret = wl1271_acx_group_address_tbl(wl, false, NULL, 0);
+               else if (fp)
+                       ret = wl1271_acx_group_address_tbl(wl, fp->enabled,
+                                                          fp->mc_list,
+                                                          fp->mc_list_length);
+               if (ret < 0)
+                       goto out_sleep;
+       }
 
        /* determine, whether supported filter values have changed */
        if (changed == 0)