34 lines
1.1 KiB
Diff
34 lines
1.1 KiB
Diff
|
# 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);
|