aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Motin <mav@FreeBSD.org>2021-01-24 19:23:04 +0000
committerAlexander Motin <mav@FreeBSD.org>2021-01-24 19:23:04 +0000
commit9bee9a98ff7f9de093314abaf7c46ca89c4020d9 (patch)
tree28e6ddd4d0a0f4e1fe6124a8d8a7ca2a9da2c772
parentb31dae0caa0286820805951842fa871f71b33d75 (diff)
downloadsrc-9bee9a98ff7f9de093314abaf7c46ca89c4020d9.tar.gz
src-9bee9a98ff7f9de093314abaf7c46ca89c4020d9.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);