summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorEliad Peller2012-08-16 12:32:32 +0200
committerLuciano Coelho2012-09-27 11:13:53 +0200
commit4137c17c8c88eca51a9e9d53c5eea0ea3d49940e (patch)
treefcf10db2616edbac952637ae3c9a932b38cbc10b /drivers/net/wireless
parentwl18xx: default to siso40 in 2.4ghz with a single antenna (diff)
downloadkernel-qcow2-linux-4137c17c8c88eca51a9e9d53c5eea0ea3d49940e.tar.gz
kernel-qcow2-linux-4137c17c8c88eca51a9e9d53c5eea0ea3d49940e.tar.xz
kernel-qcow2-linux-4137c17c8c88eca51a9e9d53c5eea0ea3d49940e.zip
wlcore: invalidate keep-alive template on disconnection
Previously, invalidation of the keep-alive template was done when going idle. However, while removing the idle-handling we didn't move the keep-alive template invalidation to another place. This finally resulted in fw error when trying to use the keep-alive template by another role. (Note that we still have an error here - each role should have its unique keep-alive template id, while currently they all use CMD_TEMPL_KLV_IDX_NULL_DATA (0). This only works now because we don't support concurrent connected stations yet) Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <luca@coelho.fi>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/ti/wlcore/main.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/ti/wlcore/main.c
index 3f5d87e95d92..7c04b0b15b60 100644
--- a/drivers/net/wireless/ti/wlcore/main.c
+++ b/drivers/net/wireless/ti/wlcore/main.c
@@ -2544,6 +2544,11 @@ static int wl1271_unjoin(struct wl1271 *wl, struct wl12xx_vif *wlvif)
ieee80211_chswitch_done(vif, false);
}
+ /* invalidate keep-alive template */
+ wl1271_acx_keep_alive_config(wl, wlvif,
+ CMD_TEMPL_KLV_IDX_NULL_DATA,
+ ACX_KEEP_ALIVE_TPL_INVALID);
+
/* to stop listening to a channel, we disconnect */
ret = wl12xx_cmd_role_stop_sta(wl, wlvif);
if (ret < 0)