WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] x86: Fix interpretation of get_l*e_linear

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] x86: Fix interpretation of get_l*e_linear_pagetable().
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Wed, 03 Sep 2008 20:20:12 -0700
Delivery-date: Wed, 03 Sep 2008 20:20:18 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# 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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] x86: Fix interpretation of get_l*e_linear_pagetable()., Xen patchbot-unstable <=