diff options
Diffstat (limited to 'drivers/net/wireless/mwifiex/sta_ioctl.c')
| -rw-r--r-- | drivers/net/wireless/mwifiex/sta_ioctl.c | 21 | 
1 files changed, 10 insertions, 11 deletions
diff --git a/drivers/net/wireless/mwifiex/sta_ioctl.c b/drivers/net/wireless/mwifiex/sta_ioctl.c index cb682561c43..60e88b58039 100644 --- a/drivers/net/wireless/mwifiex/sta_ioctl.c +++ b/drivers/net/wireless/mwifiex/sta_ioctl.c @@ -56,7 +56,6 @@ int mwifiex_copy_mcast_addr(struct mwifiex_multicast_list *mlist,   */  int mwifiex_wait_queue_complete(struct mwifiex_adapter *adapter)  { -	bool cancel_flag = false;  	int status;  	struct cmd_ctrl_node *cmd_queued; @@ -70,14 +69,11 @@ int mwifiex_wait_queue_complete(struct mwifiex_adapter *adapter)  	atomic_inc(&adapter->cmd_pending);  	/* Wait for completion */ -	wait_event_interruptible(adapter->cmd_wait_q.wait, -				 *(cmd_queued->condition)); -	if (!*(cmd_queued->condition)) -		cancel_flag = true; - -	if (cancel_flag) { -		mwifiex_cancel_pending_ioctl(adapter); -		dev_dbg(adapter->dev, "cmd cancel\n"); +	status = wait_event_interruptible(adapter->cmd_wait_q.wait, +					  *(cmd_queued->condition)); +	if (status) { +		dev_err(adapter->dev, "cmd_wait_q terminated: %d\n", status); +		return status;  	}  	status = adapter->cmd_wait_q.status; @@ -496,8 +492,11 @@ int mwifiex_enable_hs(struct mwifiex_adapter *adapter)  		return false;  	} -	wait_event_interruptible(adapter->hs_activate_wait_q, -				 adapter->hs_activate_wait_q_woken); +	if (wait_event_interruptible(adapter->hs_activate_wait_q, +				     adapter->hs_activate_wait_q_woken)) { +		dev_err(adapter->dev, "hs_activate_wait_q terminated\n"); +		return false; +	}  	return true;  }  |