xen/25459-page-list-splice.patch

34 lines
1.1 KiB
Diff
Raw Normal View History

# 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);