[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v3 13/28] xen/domctl: wrap domain_soft_reset() with CONFIG_MGMT_HYPERCALLS
Function domain_soft_reset() is responsible for domain soft reset domctl-op, and shall be wrapped with CONFIG_MGMT_HYPERCALLS Tracking its calling chain, and the following functions shall also be wrapped with CONFIG_MGMT_HYPERCALLS: - grant_table_warn_active_grants() - argo_soft_reset() - arch_domain_soft_reset() Otherwise they will become unreachable when MGMT_HYPERCALLS=n and hence violating Misra rule 2.1. Signed-off-by: Penny Zheng <Penny.Zheng@xxxxxxx> --- v1 -> v2: - remove unnessary wrapping in stub.c - adapt to changes of "unify DOMCTL to MGMT_HYPERCALLS" - wrap XEN_DOMCTL_soft_reset-case transiently --- v2 -> v3: - add back stub wrapping for ppc/riscv - remove transient wrapping around XEN_DOMCTL_soft_reset-case - address "violating Misra rule 2.1" in commit message --- xen/arch/arm/domain.c | 2 ++ xen/arch/ppc/stubs.c | 2 ++ xen/arch/riscv/stubs.c | 2 ++ xen/arch/x86/domain.c | 2 ++ xen/common/argo.c | 2 ++ xen/common/domain.c | 2 ++ xen/common/grant_table.c | 2 ++ 7 files changed, 14 insertions(+) diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c index e36719bce4..948ca35e19 100644 --- a/xen/arch/arm/domain.c +++ b/xen/arch/arm/domain.c @@ -875,10 +875,12 @@ void arch_domain_unpause(struct domain *d) { } +#ifdef CONFIG_MGMT_HYPERCALLS int arch_domain_soft_reset(struct domain *d) { return -ENOSYS; } +#endif /* CONFIG_MGMT_HYPERCALLS */ void arch_domain_creation_finished(struct domain *d) { diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c index bdaf474c5c..ecaffe0d2e 100644 --- a/xen/arch/ppc/stubs.c +++ b/xen/arch/ppc/stubs.c @@ -214,10 +214,12 @@ void arch_domain_unpause(struct domain *d) BUG_ON("unimplemented"); } +#ifdef CONFIG_MGMT_HYPERCALLS int arch_domain_soft_reset(struct domain *d) { BUG_ON("unimplemented"); } +#endif /* CONFIG_MGMT_HYPERCALLS */ void arch_domain_creation_finished(struct domain *d) { diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c index a74e56843c..291c8a23e8 100644 --- a/xen/arch/riscv/stubs.c +++ b/xen/arch/riscv/stubs.c @@ -188,10 +188,12 @@ void arch_domain_unpause(struct domain *d) BUG_ON("unimplemented"); } +#ifdef CONFIG_MGMT_HYPERCALLS int arch_domain_soft_reset(struct domain *d) { BUG_ON("unimplemented"); } +#endif /* CONFIG_MGMT_HYPERCALLS */ void arch_domain_creation_finished(struct domain *d) { diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c index 19fd86ce88..5b3c5e8caf 100644 --- a/xen/arch/x86/domain.c +++ b/xen/arch/x86/domain.c @@ -1030,6 +1030,7 @@ void arch_domain_unpause(struct domain *d) viridian_time_domain_thaw(d); } +#ifdef CONFIG_MGMT_HYPERCALLS int arch_domain_soft_reset(struct domain *d) { struct page_info *page = virt_to_page(d->shared_info), *new_page; @@ -1131,6 +1132,7 @@ int arch_domain_soft_reset(struct domain *d) return ret; } +#endif /* CONFIG_MGMT_HYPERCALLS */ void arch_domain_creation_finished(struct domain *d) { diff --git a/xen/common/argo.c b/xen/common/argo.c index cbe8911a43..a451546d57 100644 --- a/xen/common/argo.c +++ b/xen/common/argo.c @@ -2351,6 +2351,7 @@ argo_destroy(struct domain *d) write_unlock(&L1_global_argo_rwlock); } +#ifdef CONFIG_MGMT_HYPERCALLS void argo_soft_reset(struct domain *d) { @@ -2374,3 +2375,4 @@ argo_soft_reset(struct domain *d) write_unlock(&L1_global_argo_rwlock); } +#endif /* CONFIG_MGMT_HYPERCALLS */ diff --git a/xen/common/domain.c b/xen/common/domain.c index 976172c7d3..678e81b400 100644 --- a/xen/common/domain.c +++ b/xen/common/domain.c @@ -1689,6 +1689,7 @@ void domain_unpause_except_self(struct domain *d) domain_unpause(d); } +#ifdef CONFIG_MGMT_HYPERCALLS int domain_soft_reset(struct domain *d, bool resuming) { struct vcpu *v; @@ -1726,6 +1727,7 @@ int domain_soft_reset(struct domain *d, bool resuming) return rc; } +#endif /* CONFIG_MGMT_HYPERCALLS */ int vcpu_reset(struct vcpu *v) { diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c index cf131c43a1..24ef1205c9 100644 --- a/xen/common/grant_table.c +++ b/xen/common/grant_table.c @@ -3962,6 +3962,7 @@ int gnttab_release_mappings(struct domain *d) return 0; } +#ifdef CONFIG_MGMT_HYPERCALLS void grant_table_warn_active_grants(struct domain *d) { struct grant_table *gt = d->grant_table; @@ -4006,6 +4007,7 @@ void grant_table_warn_active_grants(struct domain *d) #undef WARN_GRANT_MAX } +#endif /* CONFIG_MGMT_HYPERCALLS */ void grant_table_destroy( -- 2.34.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |