"RESET-RSP online/active/old-count/new-count = %d/%d/%d/%d.\n",
                        vha->flags.online, qla2x00_reset_active(vha),
                        cmd->reset_count, qpair->chip_reset);
-               spin_unlock_irqrestore(qpair->qp_lock_ptr, flags);
-               return 0;
+               goto out_unmap_unlock;
        }
 
        /* Does F/W have an IOCBs for this request */
        prm.sg = NULL;
        prm.req_cnt = 1;
 
-       /* Calculate number of entries and segments required */
-       if (qlt_pci_map_calc_cnt(&prm) != 0)
-               return -EAGAIN;
-
        if (!qpair->fw_started || (cmd->reset_count != qpair->chip_reset) ||
            (cmd->sess && cmd->sess->deleted)) {
                /*
                return 0;
        }
 
+       /* Calculate number of entries and segments required */
+       if (qlt_pci_map_calc_cnt(&prm) != 0)
+               return -EAGAIN;
+
        spin_lock_irqsave(qpair->qp_lock_ptr, flags);
        /* Does F/W have an IOCBs for this request */
        res = qlt_check_reserve_free_req(qpair, prm.req_cnt);
 
        BUG_ON(cmd->cmd_in_wq);
 
-       if (cmd->sg_mapped)
-               qlt_unmap_sg(cmd->vha, cmd);
-
        if (!cmd->q_full)
                qlt_decr_num_pend_cmds(cmd->vha);