Helper domctl_lock_{acquire,release}() is domctl_lock, which HVM_PARAM_IDENT_PT
uses to ensure synchronization on potential domctl-op altering guest state.
So it is only needed when MGMT_HYPERCALLS=y.Suggested-by: Jan Beulich <[email protected]> Signed-off-by: Penny Zheng <[email protected]> Acked-by: Jan Beulich <[email protected]> --- v3 -> v4: - new commit --- v4 -> v5: - refine title and commit message --- xen/arch/x86/hvm/hvm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index ce75fb7839..b52dd8f1c4 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -4272,7 +4272,7 @@ static int hvm_set_param(struct domain *d, uint32_t index, uint64_t value) * the domctl_lock. */ rc = -ERESTART; - if ( !domctl_lock_acquire() ) + if ( IS_ENABLED(CONFIG_MGMT_HYPERCALLS) && !domctl_lock_acquire() ) break; rc = 0; @@ -4282,7 +4282,8 @@ static int hvm_set_param(struct domain *d, uint32_t index, uint64_t value) paging_update_cr3(v, false); domain_unpause(d); - domctl_lock_release(); + if ( IS_ENABLED(CONFIG_MGMT_HYPERCALLS) ) + domctl_lock_release(); break; case HVM_PARAM_DM_DOMAIN: /* The only value this should ever be set to is DOMID_SELF */ -- 2.34.1
