From 9b8b65c827169eca2d0e500150009ac0f857d455 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Mon, 31 Oct 2022 13:36:25 +0100 Subject: [PATCH] x86: also zap secondary time area handles during soft reset MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Just like domain_soft_reset() properly zaps runstate area handles, the secondary time area ones also need discarding to prevent guest memory corruption once the guest is re-started. Signed-off-by: Jan Beulich Reviewed-by: Roger Pau Monné master commit: b80d4f8d2ea6418e32fb4f20d1304ace6d6566e3 master date: 2022-10-27 11:49:09 +0200 --- xen/arch/x86/domain.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c index ce6ddcf313..e9b8ed4c96 100644 --- a/xen/arch/x86/domain.c +++ b/xen/arch/x86/domain.c @@ -927,6 +927,7 @@ int arch_domain_soft_reset(struct domain *d) struct page_info *page = virt_to_page(d->shared_info), *new_page; int ret = 0; struct domain *owner; + struct vcpu *v; mfn_t mfn; gfn_t gfn; p2m_type_t p2mt; @@ -1006,7 +1007,12 @@ int arch_domain_soft_reset(struct domain *d) "Failed to add a page to replace %pd's shared_info frame %"PRI_gfn"\n", d, gfn_x(gfn)); free_domheap_page(new_page); + goto exit_put_gfn; } + + for_each_vcpu ( d, v ) + set_xen_guest_handle(v->arch.time_info_guest, NULL); + exit_put_gfn: put_gfn(d, gfn_x(gfn)); exit_put_page: -- 2.39.5