diff options
Diffstat (limited to 'drivers/net/wireless/libertas/cmd.c')
| -rw-r--r-- | drivers/net/wireless/libertas/cmd.c | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/wireless/libertas/cmd.c b/drivers/net/wireless/libertas/cmd.c index 7e8a658b767..f3ac62431a3 100644 --- a/drivers/net/wireless/libertas/cmd.c +++ b/drivers/net/wireless/libertas/cmd.c @@ -1339,8 +1339,8 @@ int lbs_execute_next_command(struct lbs_private *priv)  				    cpu_to_le16(PS_MODE_ACTION_EXIT_PS)) {  					lbs_deb_host(  					       "EXEC_NEXT_CMD: ignore ENTER_PS cmd\n"); -					list_del(&cmdnode->list);  					spin_lock_irqsave(&priv->driver_lock, flags); +					list_del(&cmdnode->list);  					lbs_complete_command(priv, cmdnode, 0);  					spin_unlock_irqrestore(&priv->driver_lock, flags); @@ -1352,8 +1352,8 @@ int lbs_execute_next_command(struct lbs_private *priv)  				    (priv->psstate == PS_STATE_PRE_SLEEP)) {  					lbs_deb_host(  					       "EXEC_NEXT_CMD: ignore EXIT_PS cmd in sleep\n"); -					list_del(&cmdnode->list);  					spin_lock_irqsave(&priv->driver_lock, flags); +					list_del(&cmdnode->list);  					lbs_complete_command(priv, cmdnode, 0);  					spin_unlock_irqrestore(&priv->driver_lock, flags);  					priv->needtowakeup = 1; @@ -1366,7 +1366,9 @@ int lbs_execute_next_command(struct lbs_private *priv)  				       "EXEC_NEXT_CMD: sending EXIT_PS\n");  			}  		} +		spin_lock_irqsave(&priv->driver_lock, flags);  		list_del(&cmdnode->list); +		spin_unlock_irqrestore(&priv->driver_lock, flags);  		lbs_deb_host("EXEC_NEXT_CMD: sending command 0x%04x\n",  			    le16_to_cpu(cmd->command));  		lbs_submit_command(priv, cmdnode);  |