aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/ulp
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/infiniband/ulp')
-rw-r--r--drivers/infiniband/ulp/iser/iscsi_iser.c15
-rw-r--r--drivers/infiniband/ulp/iser/iser_initiator.c4
2 files changed, 8 insertions, 11 deletions
diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.c b/drivers/infiniband/ulp/iser/iscsi_iser.c
index dfa5a4544187..be1b9fbd416d 100644
--- a/drivers/infiniband/ulp/iser/iscsi_iser.c
+++ b/drivers/infiniband/ulp/iser/iscsi_iser.c
@@ -129,7 +129,7 @@ error:
129 * iscsi_iser_cmd_init - Initialize iSCSI SCSI_READ or SCSI_WRITE commands 129 * iscsi_iser_cmd_init - Initialize iSCSI SCSI_READ or SCSI_WRITE commands
130 * 130 *
131 **/ 131 **/
132static void 132static int
133iscsi_iser_cmd_init(struct iscsi_cmd_task *ctask) 133iscsi_iser_cmd_init(struct iscsi_cmd_task *ctask)
134{ 134{
135 struct iscsi_iser_conn *iser_conn = ctask->conn->dd_data; 135 struct iscsi_iser_conn *iser_conn = ctask->conn->dd_data;
@@ -138,6 +138,7 @@ iscsi_iser_cmd_init(struct iscsi_cmd_task *ctask)
138 iser_ctask->command_sent = 0; 138 iser_ctask->command_sent = 0;
139 iser_ctask->iser_conn = iser_conn; 139 iser_ctask->iser_conn = iser_conn;
140 iser_ctask_rdma_init(iser_ctask); 140 iser_ctask_rdma_init(iser_ctask);
141 return 0;
141} 142}
142 143
143/** 144/**
@@ -220,12 +221,6 @@ iscsi_iser_ctask_xmit(struct iscsi_conn *conn,
220 debug_scsi("ctask deq [cid %d itt 0x%x]\n", 221 debug_scsi("ctask deq [cid %d itt 0x%x]\n",
221 conn->id, ctask->itt); 222 conn->id, ctask->itt);
222 223
223 /*
224 * serialize with TMF AbortTask
225 */
226 if (ctask->mtask)
227 return error;
228
229 /* Send the cmd PDU */ 224 /* Send the cmd PDU */
230 if (!iser_ctask->command_sent) { 225 if (!iser_ctask->command_sent) {
231 error = iser_send_command(conn, ctask); 226 error = iser_send_command(conn, ctask);
@@ -406,6 +401,7 @@ iscsi_iser_session_create(struct iscsi_transport *iscsit,
406 ctask = session->cmds[i]; 401 ctask = session->cmds[i];
407 iser_ctask = ctask->dd_data; 402 iser_ctask = ctask->dd_data;
408 ctask->hdr = (struct iscsi_cmd *)&iser_ctask->desc.iscsi_header; 403 ctask->hdr = (struct iscsi_cmd *)&iser_ctask->desc.iscsi_header;
404 ctask->hdr_max = sizeof(iser_ctask->desc.iscsi_header);
409 } 405 }
410 406
411 for (i = 0; i < session->mgmtpool_max; i++) { 407 for (i = 0; i < session->mgmtpool_max; i++) {
@@ -557,6 +553,7 @@ static struct scsi_host_template iscsi_iser_sht = {
557 .max_sectors = 1024, 553 .max_sectors = 1024,
558 .cmd_per_lun = ISCSI_MAX_CMD_PER_LUN, 554 .cmd_per_lun = ISCSI_MAX_CMD_PER_LUN,
559 .eh_abort_handler = iscsi_eh_abort, 555 .eh_abort_handler = iscsi_eh_abort,
556 .eh_device_reset_handler= iscsi_eh_device_reset,
560 .eh_host_reset_handler = iscsi_eh_host_reset, 557 .eh_host_reset_handler = iscsi_eh_host_reset,
561 .use_clustering = DISABLE_CLUSTERING, 558 .use_clustering = DISABLE_CLUSTERING,
562 .proc_name = "iscsi_iser", 559 .proc_name = "iscsi_iser",
@@ -583,7 +580,9 @@ static struct iscsi_transport iscsi_iser_transport = {
583 ISCSI_PERSISTENT_ADDRESS | 580 ISCSI_PERSISTENT_ADDRESS |
584 ISCSI_TARGET_NAME | ISCSI_TPGT | 581 ISCSI_TARGET_NAME | ISCSI_TPGT |
585 ISCSI_USERNAME | ISCSI_PASSWORD | 582 ISCSI_USERNAME | ISCSI_PASSWORD |
586 ISCSI_USERNAME_IN | ISCSI_PASSWORD_IN, 583 ISCSI_USERNAME_IN | ISCSI_PASSWORD_IN |
584 ISCSI_FAST_ABORT | ISCSI_ABORT_TMO |
585 ISCSI_PING_TMO | ISCSI_RECV_TMO,
587 .host_param_mask = ISCSI_HOST_HWADDRESS | 586 .host_param_mask = ISCSI_HOST_HWADDRESS |
588 ISCSI_HOST_NETDEV_NAME | 587 ISCSI_HOST_NETDEV_NAME |
589 ISCSI_HOST_INITIATOR_NAME, 588 ISCSI_HOST_INITIATOR_NAME,
diff --git a/drivers/infiniband/ulp/iser/iser_initiator.c b/drivers/infiniband/ulp/iser/iser_initiator.c
index ba1b455949c0..83247f1fdf72 100644
--- a/drivers/infiniband/ulp/iser/iser_initiator.c
+++ b/drivers/infiniband/ulp/iser/iser_initiator.c
@@ -621,9 +621,7 @@ void iser_snd_completion(struct iser_desc *tx_desc)
621 struct iscsi_session *session = conn->session; 621 struct iscsi_session *session = conn->session;
622 622
623 spin_lock(&conn->session->lock); 623 spin_lock(&conn->session->lock);
624 list_del(&mtask->running); 624 iscsi_free_mgmt_task(conn, mtask);
625 __kfifo_put(session->mgmtpool.queue, (void*)&mtask,
626 sizeof(void*));
627 spin_unlock(&session->lock); 625 spin_unlock(&session->lock);
628 } 626 }
629 } 627 }