wl12xx: use ap_bcast_hlid for recorded keys
authorEliad Peller <eliad@wizery.com>
Sun, 14 Aug 2011 10:17:30 +0000 (13:17 +0300)
committerLuciano Coelho <coelho@ti.com>
Mon, 22 Aug 2011 09:35:29 +0000 (12:35 +0300)
when the key was recorded, wl->ap_bcast_hlid was invalid
(since the role wasn't started), so when configuring the
key we need to use the current ap_bcast_hlid.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
drivers/net/wireless/wl12xx/main.c

index 0a0b4b634bd42d729de38c7d16948a0bf6eb1775..360e33ed3ddb09b8b7ab69622be80569404027c1 100644 (file)
@@ -2533,14 +2533,19 @@ static int wl1271_ap_init_hwenc(struct wl1271 *wl)
        bool wep_key_added = false;
 
        for (i = 0; i < MAX_NUM_KEYS; i++) {
+               u8 hlid;
                if (wl->recorded_ap_keys[i] == NULL)
                        break;
 
                key = wl->recorded_ap_keys[i];
+               hlid = key->hlid;
+               if (hlid == WL12XX_INVALID_LINK_ID)
+                       hlid = wl->ap_bcast_hlid;
+
                ret = wl1271_cmd_set_ap_key(wl, KEY_ADD_OR_REPLACE,
                                            key->id, key->key_type,
                                            key->key_size, key->key,
-                                           key->hlid, key->tx_seq_32,
+                                           hlid, key->tx_seq_32,
                                            key->tx_seq_16);
                if (ret < 0)
                        goto out;