* [PATCH V3] x86/monitor: Disallow setting mem_access_emulate_each_rep when vm_event is NULL @ 2016-04-09 5:54 Razvan Cojocaru 2016-04-29 16:12 ` Razvan Cojocaru 0 siblings, 1 reply; 6+ messages in thread From: Razvan Cojocaru @ 2016-04-09 5:54 UTC (permalink / raw) To: xen-devel; +Cc: andrew.cooper3, keir, Razvan Cojocaru, jbeulich It is meaningless (and potentially dangerous - see hvmemul_virtual_to_linear()) to set mem_access_emulate_each_rep before xc_monitor_enable() (which allocates vcpu->arch.vm_event) has been called, so return an error from the XEN_DOMCTL_MONITOR_OP_EMULATE_EACH_REP hypercall when that is the case. Signed-off-by: Razvan Cojocaru <rcojocaru@bitdefender.com> Reviewed-by: Andrew Cooper <andrew.cooper3@citirx.com> --- Changes since V2: - Updated the if() condition as recommended by Andrew Cooper. - Added Andrew Cooper's Reviewed-by. --- xen/include/asm-x86/monitor.h | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/xen/include/asm-x86/monitor.h b/xen/include/asm-x86/monitor.h index 0954b59..d367099 100644 --- a/xen/include/asm-x86/monitor.h +++ b/xen/include/asm-x86/monitor.h @@ -32,19 +32,29 @@ static inline int arch_monitor_domctl_op(struct domain *d, struct xen_domctl_monitor_op *mop) { + int rc = 0; + switch ( mop->op ) { case XEN_DOMCTL_MONITOR_OP_EMULATE_EACH_REP: domain_pause(d); - d->arch.mem_access_emulate_each_rep = !!mop->event; + /* + * Enabling mem_access_emulate_each_rep without a vm_event subscriber + * is meaningless. + */ + if ( d->max_vcpus && d->vcpu[0] && d->vcpu[0]->arch.vm_event ) + d->arch.mem_access_emulate_each_rep = !!mop->event; + else + rc = -EINVAL; + domain_unpause(d); break; default: - return -EOPNOTSUPP; + rc = -EOPNOTSUPP; } - return 0; + return rc; } int arch_monitor_domctl_event(struct domain *d, -- 1.9.1 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH V3] x86/monitor: Disallow setting mem_access_emulate_each_rep when vm_event is NULL 2016-04-09 5:54 [PATCH V3] x86/monitor: Disallow setting mem_access_emulate_each_rep when vm_event is NULL Razvan Cojocaru @ 2016-04-29 16:12 ` Razvan Cojocaru 2016-05-02 10:26 ` Wei Liu 2016-05-03 8:14 ` Jan Beulich 0 siblings, 2 replies; 6+ messages in thread From: Razvan Cojocaru @ 2016-04-29 16:12 UTC (permalink / raw) To: xen-devel; +Cc: andrew.cooper3, keir, wei.liu2@citrix.com, jbeulich On 04/09/16 08:54, Razvan Cojocaru wrote: > It is meaningless (and potentially dangerous - see hvmemul_virtual_to_linear()) > to set mem_access_emulate_each_rep before xc_monitor_enable() (which allocates > vcpu->arch.vm_event) has been called, so return an error from the > XEN_DOMCTL_MONITOR_OP_EMULATE_EACH_REP hypercall when that is the case. > > Signed-off-by: Razvan Cojocaru <rcojocaru@bitdefender.com> > Reviewed-by: Andrew Cooper <andrew.cooper3@citirx.com> > > --- > Changes since V2: > - Updated the if() condition as recommended by Andrew Cooper. > - Added Andrew Cooper's Reviewed-by. > --- > xen/include/asm-x86/monitor.h | 16 +++++++++++++--- > 1 file changed, 13 insertions(+), 3 deletions(-) > > diff --git a/xen/include/asm-x86/monitor.h b/xen/include/asm-x86/monitor.h > index 0954b59..d367099 100644 > --- a/xen/include/asm-x86/monitor.h > +++ b/xen/include/asm-x86/monitor.h > @@ -32,19 +32,29 @@ > static inline > int arch_monitor_domctl_op(struct domain *d, struct xen_domctl_monitor_op *mop) > { > + int rc = 0; > + > switch ( mop->op ) > { > case XEN_DOMCTL_MONITOR_OP_EMULATE_EACH_REP: > domain_pause(d); > - d->arch.mem_access_emulate_each_rep = !!mop->event; > + /* > + * Enabling mem_access_emulate_each_rep without a vm_event subscriber > + * is meaningless. > + */ > + if ( d->max_vcpus && d->vcpu[0] && d->vcpu[0]->arch.vm_event ) > + d->arch.mem_access_emulate_each_rep = !!mop->event; > + else > + rc = -EINVAL; > + > domain_unpause(d); > break; > > default: > - return -EOPNOTSUPP; > + rc = -EOPNOTSUPP; > } > > - return 0; > + return rc; > } > > int arch_monitor_domctl_event(struct domain *d, Hello, According to the previous list discussion with Andrew Cooper, this fix might be considered for the 4.7 release, so CC-ing Wei for a release ack, as suggested. Thanks, Razvan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH V3] x86/monitor: Disallow setting mem_access_emulate_each_rep when vm_event is NULL 2016-04-29 16:12 ` Razvan Cojocaru @ 2016-05-02 10:26 ` Wei Liu 2016-05-03 8:14 ` Jan Beulich 1 sibling, 0 replies; 6+ messages in thread From: Wei Liu @ 2016-05-02 10:26 UTC (permalink / raw) To: Razvan Cojocaru Cc: andrew.cooper3, keir, wei.liu2@citrix.com, jbeulich, xen-devel On Fri, Apr 29, 2016 at 07:12:47PM +0300, Razvan Cojocaru wrote: > On 04/09/16 08:54, Razvan Cojocaru wrote: > > It is meaningless (and potentially dangerous - see hvmemul_virtual_to_linear()) > > to set mem_access_emulate_each_rep before xc_monitor_enable() (which allocates > > vcpu->arch.vm_event) has been called, so return an error from the > > XEN_DOMCTL_MONITOR_OP_EMULATE_EACH_REP hypercall when that is the case. > > > > Signed-off-by: Razvan Cojocaru <rcojocaru@bitdefender.com> > > Reviewed-by: Andrew Cooper <andrew.cooper3@citirx.com> Release-acked-by: Wei Liu <wei.liu2@citrix.com> _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH V3] x86/monitor: Disallow setting mem_access_emulate_each_rep when vm_event is NULL 2016-04-29 16:12 ` Razvan Cojocaru 2016-05-02 10:26 ` Wei Liu @ 2016-05-03 8:14 ` Jan Beulich 2016-05-03 8:18 ` Razvan Cojocaru 1 sibling, 1 reply; 6+ messages in thread From: Jan Beulich @ 2016-05-03 8:14 UTC (permalink / raw) To: Razvan Cojocaru Cc: andrew.cooper3, keir, tamas, wei.liu2@citrix.com, xen-devel >>> On 29.04.16 at 18:12, <rcojocaru@bitdefender.com> wrote: > On 04/09/16 08:54, Razvan Cojocaru wrote: >> It is meaningless (and potentially dangerous - see hvmemul_virtual_to_linear()) >> to set mem_access_emulate_each_rep before xc_monitor_enable() (which allocates >> vcpu->arch.vm_event) has been called, so return an error from the >> XEN_DOMCTL_MONITOR_OP_EMULATE_EACH_REP hypercall when that is the case. >> >> Signed-off-by: Razvan Cojocaru <rcojocaru@bitdefender.com> >> Reviewed-by: Andrew Cooper <andrew.cooper3@citirx.com> >> >> --- >> Changes since V2: >> - Updated the if() condition as recommended by Andrew Cooper. >> - Added Andrew Cooper's Reviewed-by. >> --- >> xen/include/asm-x86/monitor.h | 16 +++++++++++++--- >> 1 file changed, 13 insertions(+), 3 deletions(-) >> >> diff --git a/xen/include/asm-x86/monitor.h b/xen/include/asm-x86/monitor.h >> index 0954b59..d367099 100644 >> --- a/xen/include/asm-x86/monitor.h >> +++ b/xen/include/asm-x86/monitor.h >> @@ -32,19 +32,29 @@ >> static inline >> int arch_monitor_domctl_op(struct domain *d, struct xen_domctl_monitor_op *mop) >> { >> + int rc = 0; >> + >> switch ( mop->op ) >> { >> case XEN_DOMCTL_MONITOR_OP_EMULATE_EACH_REP: >> domain_pause(d); >> - d->arch.mem_access_emulate_each_rep = !!mop->event; >> + /* >> + * Enabling mem_access_emulate_each_rep without a vm_event subscriber >> + * is meaningless. >> + */ >> + if ( d->max_vcpus && d->vcpu[0] && d->vcpu[0]->arch.vm_event ) >> + d->arch.mem_access_emulate_each_rep = !!mop->event; >> + else >> + rc = -EINVAL; >> + >> domain_unpause(d); >> break; >> >> default: >> - return -EOPNOTSUPP; >> + rc = -EOPNOTSUPP; >> } >> >> - return 0; >> + return rc; >> } >> >> int arch_monitor_domctl_event(struct domain *d, > > According to the previous list discussion with Andrew Cooper, this fix > might be considered for the 4.7 release, so CC-ing Wei for a release > ack, as suggested. Even if - without the pending ./MAINTAINERS adjustment - not formally required, I don't understand why you didn't Cc Tamas on this patch. I don't think this should go in without his ack. Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH V3] x86/monitor: Disallow setting mem_access_emulate_each_rep when vm_event is NULL 2016-05-03 8:14 ` Jan Beulich @ 2016-05-03 8:18 ` Razvan Cojocaru 2016-05-03 18:28 ` Tamas K Lengyel 0 siblings, 1 reply; 6+ messages in thread From: Razvan Cojocaru @ 2016-05-03 8:18 UTC (permalink / raw) To: Jan Beulich; +Cc: andrew.cooper3, keir, tamas, wei.liu2@citrix.com, xen-devel On 05/03/2016 11:14 AM, Jan Beulich wrote: >>>> On 29.04.16 at 18:12, <rcojocaru@bitdefender.com> wrote: >> On 04/09/16 08:54, Razvan Cojocaru wrote: >>> It is meaningless (and potentially dangerous - see hvmemul_virtual_to_linear()) >>> to set mem_access_emulate_each_rep before xc_monitor_enable() (which allocates >>> vcpu->arch.vm_event) has been called, so return an error from the >>> XEN_DOMCTL_MONITOR_OP_EMULATE_EACH_REP hypercall when that is the case. >>> >>> Signed-off-by: Razvan Cojocaru <rcojocaru@bitdefender.com> >>> Reviewed-by: Andrew Cooper <andrew.cooper3@citirx.com> >>> >>> --- >>> Changes since V2: >>> - Updated the if() condition as recommended by Andrew Cooper. >>> - Added Andrew Cooper's Reviewed-by. >>> --- >>> xen/include/asm-x86/monitor.h | 16 +++++++++++++--- >>> 1 file changed, 13 insertions(+), 3 deletions(-) >>> >>> diff --git a/xen/include/asm-x86/monitor.h b/xen/include/asm-x86/monitor.h >>> index 0954b59..d367099 100644 >>> --- a/xen/include/asm-x86/monitor.h >>> +++ b/xen/include/asm-x86/monitor.h >>> @@ -32,19 +32,29 @@ >>> static inline >>> int arch_monitor_domctl_op(struct domain *d, struct xen_domctl_monitor_op *mop) >>> { >>> + int rc = 0; >>> + >>> switch ( mop->op ) >>> { >>> case XEN_DOMCTL_MONITOR_OP_EMULATE_EACH_REP: >>> domain_pause(d); >>> - d->arch.mem_access_emulate_each_rep = !!mop->event; >>> + /* >>> + * Enabling mem_access_emulate_each_rep without a vm_event subscriber >>> + * is meaningless. >>> + */ >>> + if ( d->max_vcpus && d->vcpu[0] && d->vcpu[0]->arch.vm_event ) >>> + d->arch.mem_access_emulate_each_rep = !!mop->event; >>> + else >>> + rc = -EINVAL; >>> + >>> domain_unpause(d); >>> break; >>> >>> default: >>> - return -EOPNOTSUPP; >>> + rc = -EOPNOTSUPP; >>> } >>> >>> - return 0; >>> + return rc; >>> } >>> >>> int arch_monitor_domctl_event(struct domain *d, >> >> According to the previous list discussion with Andrew Cooper, this fix >> might be considered for the 4.7 release, so CC-ing Wei for a release >> ack, as suggested. > > Even if - without the pending ./MAINTAINERS adjustment - not > formally required, I don't understand why you didn't Cc Tamas on > this patch. I don't think this should go in without his ack. Of course, I was under the impression that he was in the recipients list (I let scripts/maintaners.pl do the work and didn't pay much attention to its output). By all means. Thanks, Razvan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH V3] x86/monitor: Disallow setting mem_access_emulate_each_rep when vm_event is NULL 2016-05-03 8:18 ` Razvan Cojocaru @ 2016-05-03 18:28 ` Tamas K Lengyel 0 siblings, 0 replies; 6+ messages in thread From: Tamas K Lengyel @ 2016-05-03 18:28 UTC (permalink / raw) To: Razvan Cojocaru Cc: Andrew Cooper, Keir Fraser, wei.liu2@citrix.com, Jan Beulich, Xen-devel [-- Attachment #1.1: Type: text/plain, Size: 2916 bytes --] On Tue, May 3, 2016 at 2:18 AM, Razvan Cojocaru <rcojocaru@bitdefender.com> wrote: > On 05/03/2016 11:14 AM, Jan Beulich wrote: > >>>> On 29.04.16 at 18:12, <rcojocaru@bitdefender.com> wrote: > >> On 04/09/16 08:54, Razvan Cojocaru wrote: > >>> It is meaningless (and potentially dangerous - see > hvmemul_virtual_to_linear()) > >>> to set mem_access_emulate_each_rep before xc_monitor_enable() (which > allocates > >>> vcpu->arch.vm_event) has been called, so return an error from the > >>> XEN_DOMCTL_MONITOR_OP_EMULATE_EACH_REP hypercall when that is the case. > >>> > >>> Signed-off-by: Razvan Cojocaru <rcojocaru@bitdefender.com> > >>> Reviewed-by: Andrew Cooper <andrew.cooper3@citirx.com> > >>> > >>> --- > >>> Changes since V2: > >>> - Updated the if() condition as recommended by Andrew Cooper. > >>> - Added Andrew Cooper's Reviewed-by. > >>> --- > >>> xen/include/asm-x86/monitor.h | 16 +++++++++++++--- > >>> 1 file changed, 13 insertions(+), 3 deletions(-) > >>> > >>> diff --git a/xen/include/asm-x86/monitor.h > b/xen/include/asm-x86/monitor.h > >>> index 0954b59..d367099 100644 > >>> --- a/xen/include/asm-x86/monitor.h > >>> +++ b/xen/include/asm-x86/monitor.h > >>> @@ -32,19 +32,29 @@ > >>> static inline > >>> int arch_monitor_domctl_op(struct domain *d, struct > xen_domctl_monitor_op *mop) > >>> { > >>> + int rc = 0; > >>> + > >>> switch ( mop->op ) > >>> { > >>> case XEN_DOMCTL_MONITOR_OP_EMULATE_EACH_REP: > >>> domain_pause(d); > >>> - d->arch.mem_access_emulate_each_rep = !!mop->event; > >>> + /* > >>> + * Enabling mem_access_emulate_each_rep without a vm_event > subscriber > >>> + * is meaningless. > >>> + */ > >>> + if ( d->max_vcpus && d->vcpu[0] && d->vcpu[0]->arch.vm_event ) > >>> + d->arch.mem_access_emulate_each_rep = !!mop->event; > >>> + else > >>> + rc = -EINVAL; > >>> + > >>> domain_unpause(d); > >>> break; > >>> > >>> default: > >>> - return -EOPNOTSUPP; > >>> + rc = -EOPNOTSUPP; > >>> } > >>> > >>> - return 0; > >>> + return rc; > >>> } > >>> > >>> int arch_monitor_domctl_event(struct domain *d, > >> > >> According to the previous list discussion with Andrew Cooper, this fix > >> might be considered for the 4.7 release, so CC-ing Wei for a release > >> ack, as suggested. > > > > Even if - without the pending ./MAINTAINERS adjustment - not > > formally required, I don't understand why you didn't Cc Tamas on > > this patch. I don't think this should go in without his ack. > > Of course, I was under the impression that he was in the recipients list > (I let scripts/maintaners.pl do the work and didn't pay much attention > to its output). > > By all means. > The maintainers file wasn't covering this header properly. Fixed in my other patch-set. Acked-by: Tamas K Lengyel <tamas@tklengyel.com> [-- Attachment #1.2: Type: text/html, Size: 4481 bytes --] [-- Attachment #2: Type: text/plain, Size: 126 bytes --] _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2016-05-03 18:28 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2016-04-09 5:54 [PATCH V3] x86/monitor: Disallow setting mem_access_emulate_each_rep when vm_event is NULL Razvan Cojocaru 2016-04-29 16:12 ` Razvan Cojocaru 2016-05-02 10:26 ` Wei Liu 2016-05-03 8:14 ` Jan Beulich 2016-05-03 8:18 ` Razvan Cojocaru 2016-05-03 18:28 ` Tamas K Lengyel
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).