File 25459-page-list-splice.patch of Package xen.openSUSE_12.1_Update

# HG changeset patch
# User Jan Beulich <jbeulich@suse.com>
# Date 1338997025 -3600
# Node ID f6bfaf9daa508c31b2bca0e461202db2759426fc
# Parent  8ec2c428f4dad55cf6d91b893a19c2218972db5e
xen: fix page_list_splice()

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>

--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -268,7 +268,8 @@ page_list_splice(struct page_list_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);
openSUSE Build Service is sponsored by