diff options
| -rw-r--r-- | drivers/infiniband/ulp/iser/iser_initiator.c | 2 | ||||
| -rw-r--r-- | drivers/scsi/be2iscsi/be_main.h | 4 | ||||
| -rw-r--r-- | drivers/scsi/bnx2i/bnx2i_hwi.c | 8 | ||||
| -rw-r--r-- | drivers/scsi/bnx2i/bnx2i_iscsi.c | 2 | ||||
| -rw-r--r-- | drivers/scsi/libiscsi.c | 6 | ||||
| -rw-r--r-- | include/scsi/iscsi_proto.h | 30 |
6 files changed, 33 insertions, 19 deletions
diff --git a/drivers/infiniband/ulp/iser/iser_initiator.c b/drivers/infiniband/ulp/iser/iser_initiator.c index 95a08a8ca8aa..5745b7fe158c 100644 --- a/drivers/infiniband/ulp/iser/iser_initiator.c +++ b/drivers/infiniband/ulp/iser/iser_initiator.c | |||
| @@ -271,7 +271,7 @@ int iser_send_command(struct iscsi_conn *conn, | |||
| 271 | unsigned long edtl; | 271 | unsigned long edtl; |
| 272 | int err; | 272 | int err; |
| 273 | struct iser_data_buf *data_buf; | 273 | struct iser_data_buf *data_buf; |
| 274 | struct iscsi_cmd *hdr = (struct iscsi_cmd *)task->hdr; | 274 | struct iscsi_scsi_req *hdr = (struct iscsi_scsi_req *)task->hdr; |
| 275 | struct scsi_cmnd *sc = task->sc; | 275 | struct scsi_cmnd *sc = task->sc; |
| 276 | struct iser_tx_desc *tx_desc = &iser_task->desc; | 276 | struct iser_tx_desc *tx_desc = &iser_task->desc; |
| 277 | 277 | ||
diff --git a/drivers/scsi/be2iscsi/be_main.h b/drivers/scsi/be2iscsi/be_main.h index 081c171a1ed6..5ce5170254ca 100644 --- a/drivers/scsi/be2iscsi/be_main.h +++ b/drivers/scsi/be2iscsi/be_main.h | |||
| @@ -397,7 +397,7 @@ struct amap_pdu_data_out { | |||
| 397 | }; | 397 | }; |
| 398 | 398 | ||
| 399 | struct be_cmd_bhs { | 399 | struct be_cmd_bhs { |
| 400 | struct iscsi_cmd iscsi_hdr; | 400 | struct iscsi_scsi_req iscsi_hdr; |
| 401 | unsigned char pad1[16]; | 401 | unsigned char pad1[16]; |
| 402 | struct pdu_data_out iscsi_data_pdu; | 402 | struct pdu_data_out iscsi_data_pdu; |
| 403 | unsigned char pad2[BE_SENSE_INFO_SIZE - | 403 | unsigned char pad2[BE_SENSE_INFO_SIZE - |
| @@ -428,7 +428,7 @@ struct be_nonio_bhs { | |||
| 428 | }; | 428 | }; |
| 429 | 429 | ||
| 430 | struct be_status_bhs { | 430 | struct be_status_bhs { |
| 431 | struct iscsi_cmd iscsi_hdr; | 431 | struct iscsi_scsi_req iscsi_hdr; |
| 432 | unsigned char pad1[16]; | 432 | unsigned char pad1[16]; |
| 433 | /** | 433 | /** |
| 434 | * The plus 2 below is to hold the sense info length that gets | 434 | * The plus 2 below is to hold the sense info length that gets |
diff --git a/drivers/scsi/bnx2i/bnx2i_hwi.c b/drivers/scsi/bnx2i/bnx2i_hwi.c index 372d30c099cc..1b160e12afa3 100644 --- a/drivers/scsi/bnx2i/bnx2i_hwi.c +++ b/drivers/scsi/bnx2i/bnx2i_hwi.c | |||
| @@ -328,11 +328,11 @@ int bnx2i_send_iscsi_login(struct bnx2i_conn *bnx2i_conn, | |||
| 328 | { | 328 | { |
| 329 | struct bnx2i_cmd *bnx2i_cmd; | 329 | struct bnx2i_cmd *bnx2i_cmd; |
| 330 | struct bnx2i_login_request *login_wqe; | 330 | struct bnx2i_login_request *login_wqe; |
| 331 | struct iscsi_login *login_hdr; | 331 | struct iscsi_login_req *login_hdr; |
| 332 | u32 dword; | 332 | u32 dword; |
| 333 | 333 | ||
| 334 | bnx2i_cmd = (struct bnx2i_cmd *)task->dd_data; | 334 | bnx2i_cmd = (struct bnx2i_cmd *)task->dd_data; |
| 335 | login_hdr = (struct iscsi_login *)task->hdr; | 335 | login_hdr = (struct iscsi_login_req *)task->hdr; |
| 336 | login_wqe = (struct bnx2i_login_request *) | 336 | login_wqe = (struct bnx2i_login_request *) |
| 337 | bnx2i_conn->ep->qp.sq_prod_qe; | 337 | bnx2i_conn->ep->qp.sq_prod_qe; |
| 338 | 338 | ||
| @@ -1344,7 +1344,7 @@ static int bnx2i_process_scsi_cmd_resp(struct iscsi_session *session, | |||
| 1344 | struct bnx2i_cmd_response *resp_cqe; | 1344 | struct bnx2i_cmd_response *resp_cqe; |
| 1345 | struct bnx2i_cmd *bnx2i_cmd; | 1345 | struct bnx2i_cmd *bnx2i_cmd; |
| 1346 | struct iscsi_task *task; | 1346 | struct iscsi_task *task; |
| 1347 | struct iscsi_cmd_rsp *hdr; | 1347 | struct iscsi_scsi_rsp *hdr; |
| 1348 | u32 datalen = 0; | 1348 | u32 datalen = 0; |
| 1349 | 1349 | ||
| 1350 | resp_cqe = (struct bnx2i_cmd_response *)cqe; | 1350 | resp_cqe = (struct bnx2i_cmd_response *)cqe; |
| @@ -1371,7 +1371,7 @@ static int bnx2i_process_scsi_cmd_resp(struct iscsi_session *session, | |||
| 1371 | } | 1371 | } |
| 1372 | bnx2i_iscsi_unmap_sg_list(bnx2i_cmd); | 1372 | bnx2i_iscsi_unmap_sg_list(bnx2i_cmd); |
| 1373 | 1373 | ||
| 1374 | hdr = (struct iscsi_cmd_rsp *)task->hdr; | 1374 | hdr = (struct iscsi_scsi_rsp *)task->hdr; |
| 1375 | resp_cqe = (struct bnx2i_cmd_response *)cqe; | 1375 | resp_cqe = (struct bnx2i_cmd_response *)cqe; |
| 1376 | hdr->opcode = resp_cqe->op_code; | 1376 | hdr->opcode = resp_cqe->op_code; |
| 1377 | hdr->max_cmdsn = cpu_to_be32(resp_cqe->max_cmd_sn); | 1377 | hdr->max_cmdsn = cpu_to_be32(resp_cqe->max_cmd_sn); |
diff --git a/drivers/scsi/bnx2i/bnx2i_iscsi.c b/drivers/scsi/bnx2i/bnx2i_iscsi.c index 041928b23cb0..97ff47ce1840 100644 --- a/drivers/scsi/bnx2i/bnx2i_iscsi.c +++ b/drivers/scsi/bnx2i/bnx2i_iscsi.c | |||
| @@ -1212,7 +1212,7 @@ static int bnx2i_task_xmit(struct iscsi_task *task) | |||
| 1212 | struct bnx2i_conn *bnx2i_conn = conn->dd_data; | 1212 | struct bnx2i_conn *bnx2i_conn = conn->dd_data; |
| 1213 | struct scsi_cmnd *sc = task->sc; | 1213 | struct scsi_cmnd *sc = task->sc; |
| 1214 | struct bnx2i_cmd *cmd = task->dd_data; | 1214 | struct bnx2i_cmd *cmd = task->dd_data; |
| 1215 | struct iscsi_cmd *hdr = (struct iscsi_cmd *) task->hdr; | 1215 | struct iscsi_scsi_req *hdr = (struct iscsi_scsi_req *)task->hdr; |
| 1216 | 1216 | ||
| 1217 | if (bnx2i_conn->ep->num_active_cmds + 1 > hba->max_sqes) | 1217 | if (bnx2i_conn->ep->num_active_cmds + 1 > hba->max_sqes) |
| 1218 | return -ENOMEM; | 1218 | return -ENOMEM; |
diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c index 0c550d5b9133..c552cd7850ac 100644 --- a/drivers/scsi/libiscsi.c +++ b/drivers/scsi/libiscsi.c | |||
| @@ -360,7 +360,7 @@ static int iscsi_prep_scsi_cmd_pdu(struct iscsi_task *task) | |||
| 360 | struct iscsi_conn *conn = task->conn; | 360 | struct iscsi_conn *conn = task->conn; |
| 361 | struct iscsi_session *session = conn->session; | 361 | struct iscsi_session *session = conn->session; |
| 362 | struct scsi_cmnd *sc = task->sc; | 362 | struct scsi_cmnd *sc = task->sc; |
| 363 | struct iscsi_cmd *hdr; | 363 | struct iscsi_scsi_req *hdr; |
| 364 | unsigned hdrlength, cmd_len; | 364 | unsigned hdrlength, cmd_len; |
| 365 | itt_t itt; | 365 | itt_t itt; |
| 366 | int rc; | 366 | int rc; |
| @@ -374,7 +374,7 @@ static int iscsi_prep_scsi_cmd_pdu(struct iscsi_task *task) | |||
| 374 | if (rc) | 374 | if (rc) |
| 375 | return rc; | 375 | return rc; |
| 376 | } | 376 | } |
| 377 | hdr = (struct iscsi_cmd *) task->hdr; | 377 | hdr = (struct iscsi_scsi_req *)task->hdr; |
| 378 | itt = hdr->itt; | 378 | itt = hdr->itt; |
| 379 | memset(hdr, 0, sizeof(*hdr)); | 379 | memset(hdr, 0, sizeof(*hdr)); |
| 380 | 380 | ||
| @@ -830,7 +830,7 @@ static void iscsi_scsi_cmd_rsp(struct iscsi_conn *conn, struct iscsi_hdr *hdr, | |||
| 830 | struct iscsi_task *task, char *data, | 830 | struct iscsi_task *task, char *data, |
| 831 | int datalen) | 831 | int datalen) |
| 832 | { | 832 | { |
| 833 | struct iscsi_cmd_rsp *rhdr = (struct iscsi_cmd_rsp *)hdr; | 833 | struct iscsi_scsi_rsp *rhdr = (struct iscsi_scsi_rsp *)hdr; |
| 834 | struct iscsi_session *session = conn->session; | 834 | struct iscsi_session *session = conn->session; |
| 835 | struct scsi_cmnd *sc = task->sc; | 835 | struct scsi_cmnd *sc = task->sc; |
| 836 | 836 | ||
diff --git a/include/scsi/iscsi_proto.h b/include/scsi/iscsi_proto.h index dd0a52cea95a..a9c9058ffc60 100644 --- a/include/scsi/iscsi_proto.h +++ b/include/scsi/iscsi_proto.h | |||
| @@ -116,7 +116,7 @@ struct iscsi_ahs_hdr { | |||
| 116 | #define ISCSI_CDB_SIZE 16 | 116 | #define ISCSI_CDB_SIZE 16 |
| 117 | 117 | ||
| 118 | /* iSCSI PDU Header */ | 118 | /* iSCSI PDU Header */ |
| 119 | struct iscsi_cmd { | 119 | struct iscsi_scsi_req { |
| 120 | uint8_t opcode; | 120 | uint8_t opcode; |
| 121 | uint8_t flags; | 121 | uint8_t flags; |
| 122 | __be16 rsvd2; | 122 | __be16 rsvd2; |
| @@ -161,7 +161,7 @@ struct iscsi_ecdb_ahdr { | |||
| 161 | }; | 161 | }; |
| 162 | 162 | ||
| 163 | /* SCSI Response Header */ | 163 | /* SCSI Response Header */ |
| 164 | struct iscsi_cmd_rsp { | 164 | struct iscsi_scsi_rsp { |
| 165 | uint8_t opcode; | 165 | uint8_t opcode; |
| 166 | uint8_t flags; | 166 | uint8_t flags; |
| 167 | uint8_t response; | 167 | uint8_t response; |
| @@ -406,7 +406,7 @@ struct iscsi_text_rsp { | |||
| 406 | }; | 406 | }; |
| 407 | 407 | ||
| 408 | /* Login Header */ | 408 | /* Login Header */ |
| 409 | struct iscsi_login { | 409 | struct iscsi_login_req { |
| 410 | uint8_t opcode; | 410 | uint8_t opcode; |
| 411 | uint8_t flags; | 411 | uint8_t flags; |
| 412 | uint8_t max_version; /* Max. version supported */ | 412 | uint8_t max_version; /* Max. version supported */ |
| @@ -427,7 +427,13 @@ struct iscsi_login { | |||
| 427 | #define ISCSI_FLAG_LOGIN_TRANSIT 0x80 | 427 | #define ISCSI_FLAG_LOGIN_TRANSIT 0x80 |
| 428 | #define ISCSI_FLAG_LOGIN_CONTINUE 0x40 | 428 | #define ISCSI_FLAG_LOGIN_CONTINUE 0x40 |
| 429 | #define ISCSI_FLAG_LOGIN_CURRENT_STAGE_MASK 0x0C /* 2 bits */ | 429 | #define ISCSI_FLAG_LOGIN_CURRENT_STAGE_MASK 0x0C /* 2 bits */ |
| 430 | #define ISCSI_FLAG_LOGIN_CURRENT_STAGE1 0x04 | ||
| 431 | #define ISCSI_FLAG_LOGIN_CURRENT_STAGE2 0x08 | ||
| 432 | #define ISCSI_FLAG_LOGIN_CURRENT_STAGE3 0x0C | ||
| 430 | #define ISCSI_FLAG_LOGIN_NEXT_STAGE_MASK 0x03 /* 2 bits */ | 433 | #define ISCSI_FLAG_LOGIN_NEXT_STAGE_MASK 0x03 /* 2 bits */ |
| 434 | #define ISCSI_FLAG_LOGIN_NEXT_STAGE1 0x01 | ||
| 435 | #define ISCSI_FLAG_LOGIN_NEXT_STAGE2 0x02 | ||
| 436 | #define ISCSI_FLAG_LOGIN_NEXT_STAGE3 0x03 | ||
| 431 | 437 | ||
| 432 | #define ISCSI_LOGIN_CURRENT_STAGE(flags) \ | 438 | #define ISCSI_LOGIN_CURRENT_STAGE(flags) \ |
| 433 | ((flags & ISCSI_FLAG_LOGIN_CURRENT_STAGE_MASK) >> 2) | 439 | ((flags & ISCSI_FLAG_LOGIN_CURRENT_STAGE_MASK) >> 2) |
| @@ -550,17 +556,25 @@ struct iscsi_logout_rsp { | |||
| 550 | struct iscsi_snack { | 556 | struct iscsi_snack { |
| 551 | uint8_t opcode; | 557 | uint8_t opcode; |
| 552 | uint8_t flags; | 558 | uint8_t flags; |
| 553 | uint8_t rsvd2[14]; | 559 | uint8_t rsvd2[2]; |
| 560 | uint8_t hlength; | ||
| 561 | uint8_t dlength[3]; | ||
| 562 | uint8_t lun[8]; | ||
| 554 | itt_t itt; | 563 | itt_t itt; |
| 564 | __be32 ttt; | ||
| 565 | uint8_t rsvd3[4]; | ||
| 566 | __be32 exp_statsn; | ||
| 567 | uint8_t rsvd4[8]; | ||
| 555 | __be32 begrun; | 568 | __be32 begrun; |
| 556 | __be32 runlength; | 569 | __be32 runlength; |
| 557 | __be32 exp_statsn; | ||
| 558 | __be32 rsvd3; | ||
| 559 | __be32 exp_datasn; | ||
| 560 | uint8_t rsvd6[8]; | ||
| 561 | }; | 570 | }; |
| 562 | 571 | ||
| 563 | /* SNACK PDU flags */ | 572 | /* SNACK PDU flags */ |
| 573 | #define ISCSI_FLAG_SNACK_TYPE_DATA 0 | ||
| 574 | #define ISCSI_FLAG_SNACK_TYPE_R2T 0 | ||
| 575 | #define ISCSI_FLAG_SNACK_TYPE_STATUS 1 | ||
| 576 | #define ISCSI_FLAG_SNACK_TYPE_DATA_ACK 2 | ||
| 577 | #define ISCSI_FLAG_SNACK_TYPE_RDATA 3 | ||
| 564 | #define ISCSI_FLAG_SNACK_TYPE_MASK 0x0F /* 4 bits */ | 578 | #define ISCSI_FLAG_SNACK_TYPE_MASK 0x0F /* 4 bits */ |
| 565 | 579 | ||
| 566 | /* Reject Message Header */ | 580 | /* Reject Message Header */ |
