aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/wmi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/wmi.c')
-rw-r--r--drivers/net/wireless/ath/ath9k/wmi.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/net/wireless/ath/ath9k/wmi.c b/drivers/net/wireless/ath/ath9k/wmi.c
index dc6c6fc2e09..e23172c9caa 100644
--- a/drivers/net/wireless/ath/ath9k/wmi.c
+++ b/drivers/net/wireless/ath/ath9k/wmi.c
@@ -276,6 +276,9 @@ int ath9k_wmi_cmd(struct wmi *wmi, enum wmi_cmd_id cmd_id,
276 int time_left, ret = 0; 276 int time_left, ret = 0;
277 unsigned long flags; 277 unsigned long flags;
278 278
279 if (wmi->drv_priv->op_flags & OP_UNPLUGGED)
280 return 0;
281
279 if (!wmi) 282 if (!wmi)
280 return -EINVAL; 283 return -EINVAL;
281 284
@@ -302,14 +305,14 @@ int ath9k_wmi_cmd(struct wmi *wmi, enum wmi_cmd_id cmd_id,
302 wmi->cmd_rsp_buf = rsp_buf; 305 wmi->cmd_rsp_buf = rsp_buf;
303 wmi->cmd_rsp_len = rsp_len; 306 wmi->cmd_rsp_len = rsp_len;
304 307
305 ret = ath9k_wmi_cmd_issue(wmi, skb, cmd_id, cmd_len);
306 if (ret)
307 goto out;
308
309 spin_lock_irqsave(&wmi->wmi_lock, flags); 308 spin_lock_irqsave(&wmi->wmi_lock, flags);
310 wmi->last_cmd_id = cmd_id; 309 wmi->last_cmd_id = cmd_id;
311 spin_unlock_irqrestore(&wmi->wmi_lock, flags); 310 spin_unlock_irqrestore(&wmi->wmi_lock, flags);
312 311
312 ret = ath9k_wmi_cmd_issue(wmi, skb, cmd_id, cmd_len);
313 if (ret)
314 goto out;
315
313 time_left = wait_for_completion_timeout(&wmi->cmd_wait, timeout); 316 time_left = wait_for_completion_timeout(&wmi->cmd_wait, timeout);
314 if (!time_left) { 317 if (!time_left) {
315 ath_print(common, ATH_DBG_WMI, 318 ath_print(common, ATH_DBG_WMI,