[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 |