svn commit: r330869 - user/markj/vm-playground/sys/vm

Mark Johnston markj at FreeBSD.org
Tue Mar 13 17:57:54 UTC 2018


Author: markj
Date: Tue Mar 13 17:57:53 2018
New Revision: 330869
URL: https://svnweb.freebsd.org/changeset/base/330869

Log:
  Make VM_BATCHQ_FOREACH safe.

Modified:
  user/markj/vm-playground/sys/vm/vm_pagequeue.h

Modified: user/markj/vm-playground/sys/vm/vm_pagequeue.h
==============================================================================
--- user/markj/vm-playground/sys/vm/vm_pagequeue.h	Tue Mar 13 17:10:52 2018	(r330868)
+++ user/markj/vm-playground/sys/vm/vm_pagequeue.h	Tue Mar 13 17:57:53 2018	(r330869)
@@ -82,10 +82,10 @@ struct vm_batchqueue {
 	int		bq_cnt;
 } __aligned(CACHE_LINE_SIZE);
 
-#define	VM_BATCHQ_FOREACH(batchqp, page)			\
-	page = (batchqp)->bq_pa[0];				\
-	for (int __index = 0; __index < (batchqp)->bq_cnt;	\
-	    __index++, (page) = (batchqp)->bq_pa[__index])
+#define	VM_BATCHQ_FOREACH(batchqp, page)				\
+	for (vm_page_t *__mp = &(batchqp)->bq_pa[0];			\
+	    (page) = *__mp, __mp != &(batchqp)->bq_pa[(batchqp)->bq_cnt]; \
+	    __mp++)
 
 #include <vm/uma.h>
 #include <sys/pidctrl.h>


More information about the svn-src-user mailing list