diff options
Diffstat (limited to 'drivers/net/wireless/mwifiex/sta_ioctl.c')
| -rw-r--r-- | drivers/net/wireless/mwifiex/sta_ioctl.c | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/net/wireless/mwifiex/sta_ioctl.c b/drivers/net/wireless/mwifiex/sta_ioctl.c index 470ca75ec25..b0fbf5d4fea 100644 --- a/drivers/net/wireless/mwifiex/sta_ioctl.c +++ b/drivers/net/wireless/mwifiex/sta_ioctl.c @@ -54,7 +54,7 @@ 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 = adapter->cmd_wait_q.status; +	int status;  	struct cmd_ctrl_node *cmd_queued;  	if (!adapter->cmd_queued) @@ -79,6 +79,8 @@ int mwifiex_wait_queue_complete(struct mwifiex_adapter *adapter)  		mwifiex_cancel_pending_ioctl(adapter);  		dev_dbg(adapter->dev, "cmd cancel\n");  	} + +	status = adapter->cmd_wait_q.status;  	adapter->cmd_wait_q.status = 0;  	return status; @@ -240,6 +242,8 @@ int mwifiex_bss_start(struct mwifiex_private *priv, struct cfg80211_bss *bss,  		if (!netif_queue_stopped(priv->netdev))  			mwifiex_stop_net_dev_queue(priv->netdev, adapter); +		if (netif_carrier_ok(priv->netdev)) +			netif_carrier_off(priv->netdev);  		/* Clear any past association response stored for  		 * application retrieval */ @@ -271,6 +275,8 @@ int mwifiex_bss_start(struct mwifiex_private *priv, struct cfg80211_bss *bss,  		if (!netif_queue_stopped(priv->netdev))  			mwifiex_stop_net_dev_queue(priv->netdev, adapter); +		if (netif_carrier_ok(priv->netdev)) +			netif_carrier_off(priv->netdev);  		if (!ret) {  			dev_dbg(adapter->dev, "info: network found in scan"  |