aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Motin <mav@FreeBSD.org>2021-01-24 19:23:04 +0000
committerAlexander Motin <mav@FreeBSD.org>2021-02-23 00:31:52 +0000
commit49f4b33f9e1667f51a2d55e39785ce50c2cda950 (patch)
tree4fe24c72619a30c957688f26802ba1f49f00a6dc
parentc8169618a7300bf41dad37b0ce107a4be5d9f8b0 (diff)
downloadsrc-49f4b33f9e1667f51a2d55e39785ce50c2cda950.tar.gz
src-49f4b33f9e1667f51a2d55e39785ce50c2cda950.zip
Exclude reserved iSCSI Initiator Task Tag.
RFC 7143 (11.2.1.8): An ITT value of 0xffffffff is reserved and MUST NOT be assigned for a task by the initiator. The only instance in which it may be seen on the wire is in a target-initiated NOP-In PDU (Section 11.19) and in the initiator response to that PDU, if necessary. MFC after: 1 month
-rw-r--r--sys/dev/iscsi/iscsi.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/dev/iscsi/iscsi.c b/sys/dev/iscsi/iscsi.c
index eaaf84de9594..5e6c80255bff 100644
--- a/sys/dev/iscsi/iscsi.c
+++ b/sys/dev/iscsi/iscsi.c
@@ -2194,6 +2194,8 @@ iscsi_action_abort(struct iscsi_session *is, union ccb *ccb)
}
initiator_task_tag = is->is_initiator_task_tag++;
+ if (initiator_task_tag == 0xffffffff)
+ initiator_task_tag = is->is_initiator_task_tag++;
io = iscsi_outstanding_add(is, request, NULL, &initiator_task_tag);
if (io == NULL) {
@@ -2254,6 +2256,9 @@ iscsi_action_scsiio(struct iscsi_session *is, union ccb *ccb)
}
initiator_task_tag = is->is_initiator_task_tag++;
+ if (initiator_task_tag == 0xffffffff)
+ initiator_task_tag = is->is_initiator_task_tag++;
+
io = iscsi_outstanding_add(is, request, ccb, &initiator_task_tag);
if (io == NULL) {
icl_pdu_free(request);