[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v3 08/38] arm/p2m: Free p2m entries only in the hostp2m
Freeing p2m entries of arbitrary p2m's (in particular in alternate p2m's) will lead to unpredicted behavior as the entries might still be used within the host's p2m. The host's p2m should, however, free the entries, as it is the main instance responsible for their management. If entries were freed in the host's p2m, but still reside in one or more of the alternate p2m's, the change will be propagated to these functions as will be shown in the following commits. Signed-off-by: Sergej Proskurin <proskurin@xxxxxxxxxxxxx> --- Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx> Cc: Julien Grall <julien.grall@xxxxxxx> --- xen/arch/arm/p2m.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c index 02e9ee7..bfbccca 100644 --- a/xen/arch/arm/p2m.c +++ b/xen/arch/arm/p2m.c @@ -1004,7 +1004,9 @@ static int __p2m_set_entry(struct p2m_domain *p2m, * Free the entry only if the original pte was valid and the base * is different (to avoid freeing when permission is changed). */ - if ( p2m_valid(orig_pte) && entry->p2m.base != orig_pte.p2m.base ) + if ( p2m_valid(orig_pte) && + entry->p2m.base != orig_pte.p2m.base && + p2m_is_hostp2m(p2m) ) p2m_free_entry(p2m, orig_pte, level); /* XXX: Flush iommu */ -- 2.9.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |