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]> --- v3 -> v4: - new commit --- 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 b03f7dfcf6..8afd0d9d7d 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -4268,7 +4268,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; @@ -4278,7 +4278,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
