xen: fix page_list_splice()
authorJan Beulich <jbeulich@suse.com>
Wed, 6 Jun 2012 15:37:05 +0000 (16:37 +0100)
committerJan Beulich <jbeulich@suse.com>
Wed, 6 Jun 2012 15:37:05 +0000 (16:37 +0100)
Other than in __list_splice(), the first element's prev pointer
doesn't need adjustment here - it already is PAGE_LIST_NULL. Rather
than fixing the assignment (to formally match __list_splice()), simply
assert that this assignment is really unnecessary.

Reported-by: Jisoo Yang <jisooy@gmail.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Also assert that the prev pointers are both PAGE_LIST_NULL.

Signed-off-by: Keir Fraser <keir@xen.org>
Committed-by: Keir Fraser <keir@xen.org>
xen/include/xen/mm.h

index 11381a1303b2e5ac79e392bd0b22f3084d61fdb2..64a0cc15f2df88b20ba48fa07798dfe3338869dc 100644 (file)
@@ -270,7 +270,8 @@ page_list_splice(struct page_list_head *list, struct page_list_head *head)
     last = list->tail;
     at = head->next;
 
-    first->list.prev = page_to_pdx(head->next);
+    ASSERT(first->list.prev == PAGE_LIST_NULL);
+    ASSERT(first->list.prev == at->list.prev);
     head->next = first;
 
     last->list.next = page_to_pdx(at);