diff options
author | Florian Schmaus <flow@gentoo.org> | 2022-11-09 09:54:09 +0100 |
---|---|---|
committer | Florian Schmaus <flow@gentoo.org> | 2022-11-09 09:54:09 +0100 |
commit | 364cc6703e42a167e223662998592c26a315fd36 (patch) | |
tree | 642939ac0d9e401dd9d1cea0e34f32b1968ce9ab /0078-x86-also-zap-secondary-time-area-handles-during-soft.patch | |
parent | Xen 4.15.4-pre-patchset-1 (diff) | |
download | xen-upstream-patches-364cc6703e42a167e223662998592c26a315fd36.tar.gz xen-upstream-patches-364cc6703e42a167e223662998592c26a315fd36.tar.bz2 xen-upstream-patches-364cc6703e42a167e223662998592c26a315fd36.zip |
Xen 4.15.4-pre-patchset-24.15.4-pre-patchset-2
Signed-off-by: Florian Schmaus <flow@gentoo.org>
Diffstat (limited to '0078-x86-also-zap-secondary-time-area-handles-during-soft.patch')
-rw-r--r-- | 0078-x86-also-zap-secondary-time-area-handles-during-soft.patch | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/0078-x86-also-zap-secondary-time-area-handles-during-soft.patch b/0078-x86-also-zap-secondary-time-area-handles-during-soft.patch new file mode 100644 index 0000000..e3db6ad --- /dev/null +++ b/0078-x86-also-zap-secondary-time-area-handles-during-soft.patch @@ -0,0 +1,49 @@ +From 9b8b65c827169eca2d0e500150009ac0f857d455 Mon Sep 17 00:00:00 2001 +From: Jan Beulich <jbeulich@suse.com> +Date: Mon, 31 Oct 2022 13:36:25 +0100 +Subject: [PATCH 078/126] x86: also zap secondary time area handles during soft + reset +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +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 <jbeulich@suse.com> +Reviewed-by: Roger Pau Monné <roger.pau@citrix.com> +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 ce6ddcf31397..e9b8ed4c96c2 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.37.4 + |