blob: 286661a69cf83f7f01a68763d2037cf46de532ab (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
From aac108509055e5f5ff293e1fb44614f96a0996c6 Mon Sep 17 00:00:00 2001
From: Jan Beulich <jbeulich@suse.com>
Date: Mon, 31 Oct 2022 13:26:08 +0100
Subject: [PATCH 38/87] 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 a4356893bdbc..3fab2364be8d 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -929,6 +929,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;
@@ -1008,7 +1009,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
|