Message ID | 20230705093433.2514898-2-jens.wiklander@linaro.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Xen FF-A mediator | expand |
On 05.07.2023 11:34, Jens Wiklander wrote: > From: Andrew Cooper <andrew.cooper3@citrix.com> > > 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@citrix.com> > Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jan Beulich <jbeulich@suse.com>
Hi Jens, > On 5 Jul 2023, at 11:34, Jens Wiklander <jens.wiklander@linaro.org> wrote: > > From: Andrew Cooper <andrew.cooper3@citrix.com> > > 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@citrix.com> > Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com> Cheers Bertrand > --- > CC: Jan Beulich <JBeulich@suse.com> > CC: Roger Pau Monné <roger.pau@citrix.com> > CC: Wei Liu <wl@xen.org> > CC: Stefano Stabellini <sstabellini@kernel.org> > CC: Julien Grall <julien@xen.org> > CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com> > CC: Bertrand Marquis <bertrand.marquis@arm.com> > CC: Jens Wiklander <jens.wiklander@linaro.org> > --- > 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 >
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;