wlcore: use correct link for bcast/multicast frames
authorEliad Peller <eliad@wizery.com>
Tue, 15 May 2012 14:08:55 +0000 (17:08 +0300)
committerLuciano Coelho <coelho@ti.com>
Tue, 5 Jun 2012 14:16:08 +0000 (17:16 +0300)
Multicast management frames (e.g. global deauth)
should be sent out on the bcast link, rather than
the global, which should be used only for pre-added
stations (e.g. for auth/assoc resp).

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Eyal Shapira <eyal@wizery.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
drivers/net/wireless/ti/wlcore/tx.c

index 200d091..e8a2998 100644 (file)
@@ -148,10 +148,10 @@ u8 wl12xx_tx_get_hlid_ap(struct wl1271 *wl, struct wl12xx_vif *wlvif,
                        return wl->system_hlid;
 
                hdr = (struct ieee80211_hdr *)skb->data;
-               if (ieee80211_is_mgmt(hdr->frame_control))
-                       return wlvif->ap.global_hlid;
-               else
+               if (is_multicast_ether_addr(ieee80211_get_DA(hdr)))
                        return wlvif->ap.bcast_hlid;
+               else
+                       return wlvif->ap.global_hlid;
        }
 }