Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Jun 2019 23:29:17 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r349281 - head/sys/cam/scsi
Message-ID:  <201906212329.x5LNTHfQ074586@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mav
Date: Fri Jun 21 23:29:16 2019
New Revision: 349281
URL: https://svnweb.freebsd.org/changeset/base/349281

Log:
  Fix individual_element_index when some type has 0 elements.
  
  When some type has 0 elements, saved_individual_element_index was set
  to -1 on second type bump, since individual_element_index was not
  restored after the first.  To me it looks easier just to increment
  saved_individual_element_index separately than think when to save it.
  
  MFC after:	2 weeks

Modified:
  head/sys/cam/scsi/scsi_enc_ses.c

Modified: head/sys/cam/scsi/scsi_enc_ses.c
==============================================================================
--- head/sys/cam/scsi/scsi_enc_ses.c	Fri Jun 21 21:50:14 2019	(r349280)
+++ head/sys/cam/scsi/scsi_enc_ses.c	Fri Jun 21 23:29:16 2019	(r349281)
@@ -444,6 +444,7 @@ ses_iter_next(struct ses_iterator *iter)
 		iter->type_element_index       = ITERATOR_INDEX_END;
 		iter->global_element_index     = ITERATOR_INDEX_END;
 		iter->individual_element_index = ITERATOR_INDEX_END;
+		iter->saved_individual_element_index = ITERATOR_INDEX_END;
 		return (NULL);
 	}
 
@@ -468,17 +469,12 @@ ses_iter_next(struct ses_iterator *iter)
 		 */
 		iter->type_index++;
 		iter->type_element_index = 0;
-		iter->saved_individual_element_index
-		    = iter->individual_element_index;
 		iter->individual_element_index = ITERATOR_INDEX_INVALID;
 	}
 
 	if (iter->type_element_index > 0) {
-		if (iter->type_element_index == 1) {
-			iter->individual_element_index
-			    = iter->saved_individual_element_index;
-		}
-		iter->individual_element_index++;
+		iter->individual_element_index =
+		    ++iter->saved_individual_element_index;
 	}
 
 	return (&iter->cache->elm_map[iter->global_element_index]);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201906212329.x5LNTHfQ074586>