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/
Home Products Support Community News


[Xen-changelog] [xen-unstable] x86 shadow: Avoid remove-all-shadows afte

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] x86 shadow: Avoid remove-all-shadows after shadow teardown
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Wed, 26 May 2010 09:05:31 -0700
Delivery-date: Wed, 26 May 2010 09:06:40 -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 1274857281 -3600
# Node ID 5addb6cb16fd64c664b1e3dd335c76b3426e05e9
# Parent  459f35d8cac4f19e6eae0a7396f6c97e20ae955c
x86 shadow: Avoid remove-all-shadows after shadow teardown

If dom0 alters the p2m of a domain that's being destroyed, we can end
up doing a remove-all-shadows after the shadow hash table has been
freed. Since no hash table implies no shadows, just return

Signed-off-by: Tim Deegan <Tim.Deegan@xxxxxxxxxx>
 xen/arch/x86/mm/shadow/common.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletion(-)

diff -r 459f35d8cac4 -r 5addb6cb16fd xen/arch/x86/mm/shadow/common.c
--- a/xen/arch/x86/mm/shadow/common.c   Wed May 26 07:59:52 2010 +0100
+++ b/xen/arch/x86/mm/shadow/common.c   Wed May 26 08:01:21 2010 +0100
@@ -2173,8 +2173,13 @@ static void hash_foreach(struct vcpu *v,
     struct domain *d = v->domain;
     struct page_info *x;
+    ASSERT(shadow_locked_by_me(d));
+    /* Can be called via p2m code &c after shadow teardown. */
+    if ( unlikely(!d->arch.paging.shadow.hash_table) )
+        return;
     /* Say we're here, to stop hash-lookups reordering the chains */
-    ASSERT(shadow_locked_by_me(d));
     ASSERT(d->arch.paging.shadow.hash_walking == 0);
     d->arch.paging.shadow.hash_walking = 1;

Xen-changelog mailing list

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] x86 shadow: Avoid remove-all-shadows after shadow teardown, Xen patchbot-unstable <=