#include "qedi_fw_iscsi.h"
 #include "qedi_fw_scsi.h"
 
-static int qedi_send_iscsi_tmf(struct qedi_conn *qedi_conn,
-                              struct iscsi_task *mtask);
+static int send_iscsi_tmf(struct qedi_conn *qedi_conn,
+                         struct iscsi_task *mtask);
 
 void qedi_iscsi_unmap_sg_list(struct qedi_cmd *cmd)
 {
        return 0;
 }
 
-static void qedi_tmf_work(struct work_struct *work)
+static void qedi_abort_work(struct work_struct *work)
 {
        struct qedi_cmd *qedi_cmd =
                container_of(work, struct qedi_cmd, tmf_work);
        struct iscsi_task *ctask;
        struct iscsi_tm *tmf_hdr;
        s16 rval = 0;
-       s16 tid = 0;
 
        mtask = qedi_cmd->task;
        tmf_hdr = (struct iscsi_tm *)mtask->hdr;
        }
 
        qedi_cmd->type = TYPEIO;
+       qedi_cmd->state = CLEANUP_WAIT;
        list_work->qedi_cmd = qedi_cmd;
        list_work->rtid = cmd->task_id;
        list_work->state = QEDI_WORK_SCHEDULED;
        }
 
 send_tmf:
-       tid = qedi_get_task_idx(qedi);
-       if (tid == -1) {
-               QEDI_ERR(&qedi->dbg_ctx, "Invalid tid, cid=0x%x\n",
-                        qedi_conn->iscsi_conn_id);
-               goto ldel_exit;
-       }
-
-       qedi_cmd->task_id = tid;
-       qedi_send_iscsi_tmf(qedi_conn, qedi_cmd->task);
+       send_iscsi_tmf(qedi_conn, qedi_cmd->task);
 
 clear_cleanup:
        clear_bit(QEDI_CONN_FW_CLEANUP, &qedi_conn->flags);
        clear_bit(QEDI_CONN_FW_CLEANUP, &qedi_conn->flags);
 }
 
-static int qedi_send_iscsi_tmf(struct qedi_conn *qedi_conn,
-                              struct iscsi_task *mtask)
+static int send_iscsi_tmf(struct qedi_conn *qedi_conn, struct iscsi_task *mtask)
 {
        struct iscsi_tmf_request_hdr tmf_pdu_header;
        struct iscsi_task_params task_params;
        u32 scsi_lun[2];
        s16 tid = 0;
        u16 sq_idx = 0;
-       int rval = 0;
 
        tmf_hdr = (struct iscsi_tm *)mtask->hdr;
        qedi_cmd = (struct qedi_cmd *)mtask->dd_data;
        task_params.sqe = &ep->sq[sq_idx];
 
        memset(task_params.sqe, 0, sizeof(struct iscsi_wqe));
-       rval = init_initiator_tmf_request_task(&task_params,
-                                              &tmf_pdu_header);
-       if (rval)
-               return -1;
+       init_initiator_tmf_request_task(&task_params, &tmf_pdu_header);
 
        spin_lock(&qedi_conn->list_lock);
        list_add_tail(&qedi_cmd->io_cmd, &qedi_conn->active_cmd_list);
        return 0;
 }
 
-int qedi_iscsi_abort_work(struct qedi_conn *qedi_conn,
-                         struct iscsi_task *mtask)
+int qedi_send_iscsi_tmf(struct qedi_conn *qedi_conn, struct iscsi_task *mtask)
 {
+       struct iscsi_tm *tmf_hdr = (struct iscsi_tm *)mtask->hdr;
+       struct qedi_cmd *qedi_cmd = mtask->dd_data;
        struct qedi_ctx *qedi = qedi_conn->qedi;
-       struct iscsi_tm *tmf_hdr;
-       struct qedi_cmd *qedi_cmd = (struct qedi_cmd *)mtask->dd_data;
-       s16 tid = 0;
+       int rc = 0;
 
-       tmf_hdr = (struct iscsi_tm *)mtask->hdr;
-       qedi_cmd->task = mtask;
-
-       /* If abort task then schedule the work and return */
-       if ((tmf_hdr->flags & ISCSI_FLAG_TM_FUNC_MASK) ==
-           ISCSI_TM_FUNC_ABORT_TASK) {
-               qedi_cmd->state = CLEANUP_WAIT;
-               INIT_WORK(&qedi_cmd->tmf_work, qedi_tmf_work);
+       switch (tmf_hdr->flags & ISCSI_FLAG_TM_FUNC_MASK) {
+       case ISCSI_TM_FUNC_ABORT_TASK:
+               INIT_WORK(&qedi_cmd->tmf_work, qedi_abort_work);
                queue_work(qedi->tmf_thread, &qedi_cmd->tmf_work);
-
-       } else if (((tmf_hdr->flags & ISCSI_FLAG_TM_FUNC_MASK) ==
-                   ISCSI_TM_FUNC_LOGICAL_UNIT_RESET) ||
-                  ((tmf_hdr->flags & ISCSI_FLAG_TM_FUNC_MASK) ==
-                   ISCSI_TM_FUNC_TARGET_WARM_RESET) ||
-                  ((tmf_hdr->flags & ISCSI_FLAG_TM_FUNC_MASK) ==
-                   ISCSI_TM_FUNC_TARGET_COLD_RESET)) {
-               tid = qedi_get_task_idx(qedi);
-               if (tid == -1) {
-                       QEDI_ERR(&qedi->dbg_ctx, "Invalid tid, cid=0x%x\n",
-                                qedi_conn->iscsi_conn_id);
-                       return -1;
-               }
-               qedi_cmd->task_id = tid;
-
-               qedi_send_iscsi_tmf(qedi_conn, qedi_cmd->task);
-
-       } else {
+               break;
+       case ISCSI_TM_FUNC_LOGICAL_UNIT_RESET:
+       case ISCSI_TM_FUNC_TARGET_WARM_RESET:
+       case ISCSI_TM_FUNC_TARGET_COLD_RESET:
+               rc = send_iscsi_tmf(qedi_conn, mtask);
+               break;
+       default:
                QEDI_ERR(&qedi->dbg_ctx, "Invalid tmf, cid=0x%x\n",
                         qedi_conn->iscsi_conn_id);
-               return -1;
+               return -EINVAL;
        }
 
-       return 0;
+       return rc;
 }
 
 int qedi_send_iscsi_text(struct qedi_conn *qedi_conn,