}
        cmd_node = list_first_entry(&adapter->cmd_pending_q,
                                    struct cmd_ctrl_node, list);
-       spin_unlock_irqrestore(&adapter->cmd_pending_q_lock,
-                              cmd_pending_q_flags);
 
        host_cmd = (struct host_cmd_ds_command *) (cmd_node->cmd_skb->data);
        priv = cmd_node->priv;
                mwifiex_dbg(adapter, ERROR,
                            "%s: cannot send cmd in sleep state,\t"
                            "this should not happen\n", __func__);
+               spin_unlock_irqrestore(&adapter->cmd_pending_q_lock,
+                                      cmd_pending_q_flags);
                spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, cmd_flags);
                return ret;
        }
 
-       spin_lock_irqsave(&adapter->cmd_pending_q_lock, cmd_pending_q_flags);
        list_del(&cmd_node->list);
        spin_unlock_irqrestore(&adapter->cmd_pending_q_lock,
                               cmd_pending_q_flags);