diff options
Diffstat (limited to 'drivers/infiniband/ulp')
-rw-r--r-- | drivers/infiniband/ulp/iser/iscsi_iser.c | 15 | ||||
-rw-r--r-- | drivers/infiniband/ulp/iser/iser_initiator.c | 4 |
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 | **/ |
132 | static void | 132 | static int |
133 | iscsi_iser_cmd_init(struct iscsi_cmd_task *ctask) | 133 | iscsi_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 | } |