|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] vm_event: make sure the domain is paused in key domctls
On 28/01/16 13:52, Razvan Cojocaru wrote:
> This patch pauses the domain for all writes through the 'ad'
> pointer in monitor_domctl(), defers a domain_unpause() call until
> after the CRs are updated for the MONITOR_EVENT_WRITE_CTRLREG
> case, and makes sure that the domain is paused for both vm_event
> enable and disable cases in vm_event_domctl().
> Thanks go to Andrew Cooper for his review and suggestions.
>
> Signed-off-by: Razvan Cojocaru <rcojocaru@xxxxxxxxxxxxxxx>
Would you mind annotating each of the checks for d != current->domain
with /* no domain_pause(). */, which is our normal practice.
I think it might be better to move the current check for
XEN_DOMCTL_monitor_op into monitor_domctl() itself, to have all checks
together in one place.
> @@ -144,6 +146,8 @@ int monitor_domctl(struct domain *d, struct
> xen_domctl_monitor_op *mop)
> if ( rc )
> return rc;
>
> + domain_pause(d);
> +
> if ( mop->op == XEN_DOMCTL_MONITOR_OP_ENABLE &&
> mop->u.mov_to_msr.extended_capture )
> {
> @@ -154,7 +158,6 @@ int monitor_domctl(struct domain *d, struct
> xen_domctl_monitor_op *mop)
You will need to rework the return -EOPNOTSUPP between these two hunks
to avoid missing the domain_unpause()
It would probably be better to pull the check forwards to before the
domain_pause().
> } else
> ad->monitor.mov_to_msr_extended = 0;
>
> - domain_pause(d);
> ad->monitor.mov_to_msr_enabled = !status;
> domain_unpause(d);
> break;
> @@ -196,9 +199,8 @@ int monitor_domctl(struct domain *d, struct
> xen_domctl_monitor_op *mop)
>
The other codepaths look fine.
~Andrew
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |