Module Name:    src
Committed By:   pgoyette
Date:           Mon Oct  2 05:13:44 UTC 2017

Modified Files:
        src/sys/sys: queue.h

Log Message:
Fix the LIST_MOVE macro to properly update the back-pointer of the
first entry in the list.

Note that the signature of LIST_MOVE() macro also changes (it grew an
additional argument).  This should not require a kernel version bump
since nothing appears to use LIST_MOVE() other than the recently added
atf test.


To generate a diff of this commit:
cvs rdiff -u -r1.70 -r1.71 src/sys/sys/queue.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/sys/queue.h
diff -u src/sys/sys/queue.h:1.70 src/sys/sys/queue.h:1.71
--- src/sys/sys/queue.h:1.70	Mon Nov  2 15:21:23 2015
+++ src/sys/sys/queue.h	Mon Oct  2 05:13:44 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: queue.h,v 1.70 2015/11/02 15:21:23 christos Exp $	*/
+/*	$NetBSD: queue.h,v 1.71 2017/10/02 05:13:44 pgoyette Exp $	*/
 
 /*
  * Copyright (c) 1991, 1993
@@ -211,10 +211,11 @@ struct {								\
 	    ((tvar) = LIST_NEXT((var), field), 1);			\
 	    (var) = (tvar))
 
-#define	LIST_MOVE(head1, head2) do {					\
+#define	LIST_MOVE(head1, head2, field) do {					\
 	LIST_INIT((head2));						\
 	if (!LIST_EMPTY((head1))) {					\
 		(head2)->lh_first = (head1)->lh_first;			\
+		(head2)->lh_first->field.le_prev = &(head2)->lh_first;	\
 		LIST_INIT((head1));					\
 	}								\
 } while (/*CONSTCOND*/0)

Reply via email to