Module Name:    src
Committed By:   tnn
Date:           Fri Jan  4 20:22:32 UTC 2019

Modified Files:
        src/sys/external/bsd/drm2/include/linux: interval_tree.h

Log Message:
interval_tree_iter_next: check the node we return, not the prev one.
Also assert that the interval is intersecting the requested boundary.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 \
    src/sys/external/bsd/drm2/include/linux/interval_tree.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/external/bsd/drm2/include/linux/interval_tree.h
diff -u src/sys/external/bsd/drm2/include/linux/interval_tree.h:1.7 src/sys/external/bsd/drm2/include/linux/interval_tree.h:1.8
--- src/sys/external/bsd/drm2/include/linux/interval_tree.h:1.7	Tue Aug 28 03:34:53 2018
+++ src/sys/external/bsd/drm2/include/linux/interval_tree.h	Fri Jan  4 20:22:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: interval_tree.h,v 1.7 2018/08/28 03:34:53 riastradh Exp $	*/
+/*	$NetBSD: interval_tree.h,v 1.8 2019/01/04 20:22:32 tnn Exp $	*/
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -119,9 +119,9 @@ interval_tree_iter_first(struct rb_root 
 	node = rb_tree_find_node_geq(&root->rbr_tree, &start);
 	if (node == NULL)
 		return NULL;
-	KASSERT(node->start <= start);
 	if (last < node->start)
 		return NULL;
+	KASSERT(node->start <= last && node->last >= start);
 
 	return node;
 }
@@ -141,9 +141,9 @@ interval_tree_iter_next(struct rb_root *
 	next = rb_tree_iterate(&root->rbr_tree, node, RB_DIR_RIGHT);
 	if (next == NULL)
 		return NULL;
-	KASSERT(node->start <= start);
-	if (last < node->start)
+	if (last < next->start)
 		return NULL;
+	KASSERT(next->start <= last && next->last >= start);
 
 	return next;
 }

Reply via email to