瀏覽代碼

wl12xx: flush packets before stopping dev role

During sta disconnection, a deauth packet is being queued to
the dev role queue. However, the dev role is being stopped
before the packet was sent.

Flush the tx queue before stopping the dev role.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
Eliad Peller 13 年之前
父節點
當前提交
8aefffeaae
共有 1 個文件被更改,包括 3 次插入0 次删除
  1. 3 0
      drivers/net/wireless/wl12xx/cmd.c

+ 3 - 0
drivers/net/wireless/wl12xx/cmd.c

@@ -1835,6 +1835,9 @@ int wl12xx_stop_dev(struct wl1271 *wl, struct wl12xx_vif *wlvif)
 		      wlvif->bss_type == BSS_TYPE_IBSS)))
 		      wlvif->bss_type == BSS_TYPE_IBSS)))
 		return -EINVAL;
 		return -EINVAL;
 
 
+	/* flush all pending packets */
+	wl1271_tx_work_locked(wl);
+
 	if (test_bit(wlvif->dev_role_id, wl->roc_map)) {
 	if (test_bit(wlvif->dev_role_id, wl->roc_map)) {
 		ret = wl12xx_croc(wl, wlvif->dev_role_id);
 		ret = wl12xx_croc(wl, wlvif->dev_role_id);
 		if (ret < 0)
 		if (ret < 0)