|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [XEN PATCH v10 01/24] xen: Introduce arch_domain_teardown()
From: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
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>
Signed-off-by: Jens Wiklander <jens.wiklander@xxxxxxxxxx>
Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
Reviewed-by: Bertrand Marquis <bertrand.marquis@xxxxxxx>
---
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>
v9 -> v10
- Added Jan's and Bertand's tags
---
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 8c18e9207907..15d9709a97d2 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -793,6 +793,11 @@ fail:
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 caaa40263792..304aa04fa6cb 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -439,6 +439,7 @@ static int domain_teardown(struct domain *d)
PROG_none,
PROG_gnttab_mappings,
PROG_vcpu_teardown,
+ PROG_arch_teardown,
PROG_done,
};
@@ -459,6 +460,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 1df8f933d076..d35af348410c 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -81,6 +81,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.34.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |