|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 1/2] x86: Introduce arch_domain_teardown()
Plumb it into domain_teardown(). Provide arch_val in the teardown
continuation information for use by arch_domain_teardown().
No practical change.
Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
CC: Jan Beulich <JBeulich@xxxxxxxx>
CC: Roger Pau Monné <roger.pau@xxxxxxxxxx>
CC: Wei Liu <wl@xxxxxxx>
CC: Stefano Stabellini <sstabellini@xxxxxxxxxx>
CC: Julien Grall <julien@xxxxxxx>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>
CC: Bertrand Marquis <bertrand.marquis@xxxxxxx>
CC: Jens Wiklander <jens.wiklander@xxxxxxxxxx>
---
xen/arch/arm/domain.c | 5 +++++
xen/arch/x86/domain.c | 5 +++++
xen/common/domain.c | 6 ++++++
xen/include/xen/domain.h | 1 +
xen/include/xen/sched.h | 1 +
5 files changed, 18 insertions(+)
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index d8ef6501ff8e..b3981d70a442 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -750,6 +750,11 @@ int arch_domain_create(struct domain *d,
return rc;
}
+int arch_domain_teardown(struct domain *d)
+{
+ return 0;
+}
+
void arch_domain_destroy(struct domain *d)
{
/* IOMMU page table is shared with P2M, always call
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 39c215316546..5f66c2ae33d7 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -888,6 +888,11 @@ int arch_domain_create(struct domain *d,
return rc;
}
+int arch_domain_teardown(struct domain *d)
+{
+ return 0;
+}
+
void arch_domain_destroy(struct domain *d)
{
if ( is_hvm_domain(d) )
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 6a440590fe2a..b0d850e3595b 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -416,6 +416,7 @@ static int domain_teardown(struct domain *d)
PROG_none,
PROG_gnttab_mappings,
PROG_vcpu_teardown,
+ PROG_arch_teardown,
PROG_done,
};
@@ -436,6 +437,11 @@ static int domain_teardown(struct domain *d)
return rc;
}
+ PROGRESS(arch_teardown):
+ rc = arch_domain_teardown(d);
+ if ( rc )
+ return rc;
+
PROGRESS(done):
break;
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index 26f9c4f6dd5b..c3348c90748f 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -80,6 +80,7 @@ int arch_domain_create(struct domain *d,
struct xen_domctl_createdomain *config,
unsigned int flags);
+int arch_domain_teardown(struct domain *d);
void arch_domain_destroy(struct domain *d);
void arch_domain_shutdown(struct domain *d);
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 85242a73d374..854f3e32c00e 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -589,6 +589,7 @@ struct domain
*/
struct {
unsigned int val;
+ unsigned int arch_val;
struct vcpu *vcpu;
} teardown;
--
2.30.2
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |