u16 cmd_idx = drv_cmd->host_tag - MPI3MR_HOSTTAG_DEVRMCMD_MIN;
        struct delayed_dev_rmhs_node *delayed_dev_rmhs = NULL;
 
+       if (drv_cmd->state & MPI3MR_CMD_RESET)
+               goto clear_drv_cmd;
+
        ioc_info(mrioc,
            "%s :dev_rmhs_iouctrl_complete:handle(0x%04x), ioc_status(0x%04x), loginfo(0x%08x)\n",
            __func__, drv_cmd->dev_handle, drv_cmd->ioc_status,
                kfree(delayed_dev_rmhs);
                return;
        }
+
+clear_drv_cmd:
        drv_cmd->state = MPI3MR_CMD_NOTUSED;
        drv_cmd->callback = NULL;
        drv_cmd->retry_count = 0;
        struct mpi3_scsi_task_mgmt_reply *tm_reply = NULL;
        int retval;
 
+       if (drv_cmd->state & MPI3MR_CMD_RESET)
+               goto clear_drv_cmd;
+
        if (drv_cmd->state & MPI3MR_CMD_REPLY_VALID)
                tm_reply = (struct mpi3_scsi_task_mgmt_reply *)drv_cmd->reply;
 
        if (retval) {
                pr_err(IOCNAME "Issue DevRmHsTMIOUCTL: Admin post failed\n",
                    mrioc->name);
-               goto out_failed;
+               goto clear_drv_cmd;
        }
 
        return;
-out_failed:
+clear_drv_cmd:
        drv_cmd->state = MPI3MR_CMD_NOTUSED;
        drv_cmd->callback = NULL;
        drv_cmd->dev_handle = MPI3MR_INVALID_DEV_HANDLE;
        u16 cmd_idx = drv_cmd->host_tag - MPI3MR_HOSTTAG_EVTACKCMD_MIN;
        struct delayed_evt_ack_node *delayed_evtack = NULL;
 
+       if (drv_cmd->state & MPI3MR_CMD_RESET)
+               goto clear_drv_cmd;
+
        if (drv_cmd->ioc_status != MPI3_IOCSTATUS_SUCCESS) {
                dprint_event_th(mrioc,
                    "immediate event ack failed with ioc_status(0x%04x) log_info(0x%08x)\n",
                kfree(delayed_evtack);
                return;
        }
+clear_drv_cmd:
        drv_cmd->state = MPI3MR_CMD_NOTUSED;
        drv_cmd->callback = NULL;
        clear_bit(cmd_idx, mrioc->evtack_cmds_bitmap);