Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 May 2020 09:44:26 +0000 (UTC)
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org
Subject:   svn commit: r361205 - stable/12/sys/compat/linuxkpi/common/include/linux
Message-ID:  <202005180944.04I9iQAq077329@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: hselasky
Date: Mon May 18 09:44:26 2020
New Revision: 361205
URL: https://svnweb.freebsd.org/changeset/base/361205

Log:
  MFC r360623:
  Optimise use of sg_page_count() in __sg_page_iter_next() in the LinuxKPI.
  No need to compute value twice.
  
  No functional change intended.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/12/sys/compat/linuxkpi/common/include/linux/scatterlist.h
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/compat/linuxkpi/common/include/linux/scatterlist.h
==============================================================================
--- stable/12/sys/compat/linuxkpi/common/include/linux/scatterlist.h	Mon May 18 09:43:31 2020	(r361204)
+++ stable/12/sys/compat/linuxkpi/common/include/linux/scatterlist.h	Mon May 18 09:44:26 2020	(r361205)
@@ -416,6 +416,8 @@ sg_page_count(struct scatterlist *sg)
 static inline bool
 __sg_page_iter_next(struct sg_page_iter *piter)
 {
+	unsigned int pgcount;
+
 	if (piter->internal.nents == 0)
 		return (0);
 	if (piter->sg == NULL)
@@ -424,8 +426,11 @@ __sg_page_iter_next(struct sg_page_iter *piter)
 	piter->sg_pgoffset += piter->internal.pg_advance;
 	piter->internal.pg_advance = 1;
 
-	while (piter->sg_pgoffset >= sg_page_count(piter->sg)) {
-		piter->sg_pgoffset -= sg_page_count(piter->sg);
+	while (1) {
+		pgcount = sg_page_count(piter->sg);
+		if (likely(piter->sg_pgoffset < pgcount))
+			break;
+		piter->sg_pgoffset -= pgcount;
 		piter->sg = sg_next(piter->sg);
 		if (--piter->internal.nents == 0)
 			return (0);



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