From b29aed8b0355fe9f7d49faa9aef12b2f8f983c2c Mon Sep 17 00:00:00 2001 From: Tamas K Lengyel Date: Wed, 25 Jan 2017 09:12:01 -0700 Subject: [PATCH] arm/p2m: Fix regression during domain shutdown with active mem_access The change in commit 438c5fe4f0c introduced a regression for domains where mem_acces is or was active. When relinquish_p2m_mapping attempts to clear a page where the order is not 0 the following ASSERT is triggered: ASSERT(!p2m->mem_access_enabled || page_order == 0); This regression was unfortunately not caught during testing in preparation for the 4.8 release. In this patch we adjust the ASSERT to not trip when the domain is being shutdown. Signed-off-by: Tamas K Lengyel Acked-by: Julien Grall --- xen/arch/arm/p2m.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c index cc5634bd17..9e810487bb 100644 --- a/xen/arch/arm/p2m.c +++ b/xen/arch/arm/p2m.c @@ -982,9 +982,10 @@ static int __p2m_set_entry(struct p2m_domain *p2m, /* * The radix-tree can only work on 4KB. This is only used when - * memaccess is enabled. + * memaccess is enabled and during shutdown. */ - ASSERT(!p2m->mem_access_enabled || page_order == 0); + ASSERT(!p2m->mem_access_enabled || page_order == 0 || + p2m->domain->is_dying); /* * The access type should always be p2m_access_rwx when the mapping * is removed. -- 2.39.5