[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] x86: Fix interpretation of get_l*e_linear_pagetable().
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1220450168 -3600 # Node ID c9db93b0660ae644491c862e47744a2349ba630f # Parent 1e98ea5c860438a227e135701e6439b22826f52f x86: Fix interpretation of get_l*e_linear_pagetable(). Broken by get_page_type() preemption patch (c/s 18412). Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx> --- xen/arch/x86/mm.c | 15 ++++++--------- 1 files changed, 6 insertions(+), 9 deletions(-) diff -r 1e98ea5c8604 -r c9db93b0660a xen/arch/x86/mm.c --- a/xen/arch/x86/mm.c Wed Sep 03 14:16:35 2008 +0100 +++ b/xen/arch/x86/mm.c Wed Sep 03 14:56:08 2008 +0100 @@ -762,9 +762,8 @@ get_page_from_l2e( rc = get_page_and_type_from_pagenr( l2e_get_pfn(l2e), PGT_l1_page_table, d, 0); - if ( unlikely(rc) && rc != -EAGAIN && - get_l2_linear_pagetable(l2e, pfn, d) ) - rc = -EINVAL; + if ( unlikely(rc == -EINVAL) && get_l2_linear_pagetable(l2e, pfn, d) ) + rc = 0; return rc; } @@ -788,9 +787,8 @@ get_page_from_l3e( rc = get_page_and_type_from_pagenr( l3e_get_pfn(l3e), PGT_l2_page_table, d, preemptible); - if ( unlikely(rc) && rc != -EAGAIN && rc != -EINTR && - get_l3_linear_pagetable(l3e, pfn, d) ) - rc = -EINVAL; + if ( unlikely(rc == -EINVAL) && get_l3_linear_pagetable(l3e, pfn, d) ) + rc = 0; return rc; } @@ -814,9 +812,8 @@ get_page_from_l4e( rc = get_page_and_type_from_pagenr( l4e_get_pfn(l4e), PGT_l3_page_table, d, preemptible); - if ( unlikely(rc) && rc != -EAGAIN && rc != -EINTR && - get_l4_linear_pagetable(l4e, pfn, d) ) - rc = -EINVAL; + if ( unlikely(rc == -EINVAL) && get_l4_linear_pagetable(l4e, pfn, d) ) + rc = 0; return rc; } _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |