From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tamas K Lengyel Subject: Re: [PATCH for-4.5 v9 06/19] xen: Relocate mem_event_op domctl and access_op memop into common. Date: Wed, 24 Sep 2014 15:07:48 +0200 Message-ID: References: <1411549793-12589-4-git-send-email-tklengyel@sec.in.tum.de> <1411549793-12589-6-git-send-email-tklengyel@sec.in.tum.de> <5422D3B80200007800038392@mail.emea.novell.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0084861251457827874==" Return-path: In-Reply-To: <5422D3B80200007800038392@mail.emea.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Jan Beulich Cc: Stefano Stabellini , Keir Fraser , Tamas K Lengyel , "xen-devel@lists.xen.org" List-Id: xen-devel@lists.xenproject.org --===============0084861251457827874== Content-Type: multipart/alternative; boundary=001a11c12212e561a10503cf5ecd --001a11c12212e561a10503cf5ecd Content-Type: text/plain; charset=ISO-8859-1 On Wed, Sep 24, 2014 at 2:22 PM, Jan Beulich wrote: > >>> On 24.09.14 at 11:09, wrote: > > Signed-off-by: Tamas K Lengyel > > for the non-ARM, non-x86/mm parts > Acked-by: Jan Beulich > > But you failed to Cc relevant people for those other parts (and you > Cc-ed too few for the common code changes). > Thanks. I used the get_maintainer.pl script to grab only the relevant folks for these two patches. I'm not sure why it did miss folks. Tamas > > Jan > > > --- > > v9: Rename abstracted function to p2m_setup_introspection. > > v8: Move the new enable_msr_exit_interception test into the p2m layer. > > v6: Grouping style fix of #includes in common/memory.c. > > v5: Move memop compat into common as well. > > Position domctl in switch relative to the domctl #. > > v4: Don't remove memop handling from x86_64/compat and style fixes. > > --- > > xen/arch/x86/domctl.c | 8 -------- > > xen/arch/x86/mm/p2m.c | 9 +++++++++ > > xen/arch/x86/x86_64/compat/mm.c | 4 ---- > > xen/arch/x86/x86_64/mm.c | 4 ---- > > xen/common/compat/memory.c | 5 +++++ > > xen/common/domctl.c | 7 +++++++ > > xen/common/mem_event.c | 10 ++++------ > > xen/common/memory.c | 9 +++++++-- > > xen/include/asm-arm/p2m.h | 6 ++++++ > > xen/include/asm-x86/p2m.h | 3 +++ > > 10 files changed, 41 insertions(+), 24 deletions(-) > > > > diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c > > index 8731e7f..ec77555 100644 > > --- a/xen/arch/x86/domctl.c > > +++ b/xen/arch/x86/domctl.c > > @@ -1131,14 +1131,6 @@ long arch_do_domctl( > > } > > break; > > > > - case XEN_DOMCTL_mem_event_op: > > - { > > - ret = mem_event_domctl(d, &domctl->u.mem_event_op, > > - guest_handle_cast(u_domctl, void)); > > - copyback = 1; > > - } > > - break; > > - > > case XEN_DOMCTL_mem_sharing_op: > > { > > ret = mem_sharing_domctl(d, &domctl->u.mem_sharing_op); > > diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c > > index 08adaac..728e4eb 100644 > > --- a/xen/arch/x86/mm/p2m.c > > +++ b/xen/arch/x86/mm/p2m.c > > @@ -1436,6 +1436,15 @@ void p2m_mem_event_emulate_check(struct vcpu *v, > const > > mem_event_response_t *rsp > > } > > } > > > > +void p2m_setup_introspection(struct domain *d) > > +{ > > + if ( hvm_funcs.enable_msr_exit_interception ) > > + { > > + d->arch.hvm_domain.introspection_enabled = 1; > > + hvm_funcs.enable_msr_exit_interception(d); > > + } > > +} > > + > > bool_t p2m_mem_access_check(paddr_t gpa, unsigned long gla, > > struct npfec npfec, > > mem_event_request_t **req_ptr) > > diff --git a/xen/arch/x86/x86_64/compat/mm.c > b/xen/arch/x86/x86_64/compat/mm.c > > index c079702..54f25b7 100644 > > --- a/xen/arch/x86/x86_64/compat/mm.c > > +++ b/xen/arch/x86/x86_64/compat/mm.c > > @@ -198,10 +198,6 @@ int compat_arch_memory_op(unsigned long cmd, > > XEN_GUEST_HANDLE_PARAM(void) arg) > > break; > > } > > > > - case XENMEM_access_op: > > - rc = mem_access_memop(cmd, guest_handle_cast(arg, > > xen_mem_access_op_t)); > > - break; > > - > > case XENMEM_sharing_op: > > { > > xen_mem_sharing_op_t mso; > > diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c > > index cce1406..8e5a1a1 100644 > > --- a/xen/arch/x86/x86_64/mm.c > > +++ b/xen/arch/x86/x86_64/mm.c > > @@ -995,10 +995,6 @@ long subarch_memory_op(unsigned long cmd, > > XEN_GUEST_HANDLE_PARAM(void) arg) > > break; > > } > > > > - case XENMEM_access_op: > > - rc = mem_access_memop(cmd, guest_handle_cast(arg, > > xen_mem_access_op_t)); > > - break; > > - > > case XENMEM_sharing_op: > > { > > xen_mem_sharing_op_t mso; > > diff --git a/xen/common/compat/memory.c b/xen/common/compat/memory.c > > index 25dc016..43d02bc 100644 > > --- a/xen/common/compat/memory.c > > +++ b/xen/common/compat/memory.c > > @@ -4,6 +4,7 @@ > > #include > > #include > > #include > > +#include > > #include > > #include > > > > @@ -381,6 +382,10 @@ int compat_memory_op(unsigned int cmd, > > XEN_GUEST_HANDLE_PARAM(void) compat) > > break; > > } > > > > + case XENMEM_access_op: > > + rc = mem_access_memop(cmd, guest_handle_cast(compat, > > xen_mem_access_op_t)); > > + break; > > + > > case XENMEM_add_to_physmap_batch: > > start_extent = end_extent; > > break; > > diff --git a/xen/common/domctl.c b/xen/common/domctl.c > > index 329e535..fd8dd44 100644 > > --- a/xen/common/domctl.c > > +++ b/xen/common/domctl.c > > @@ -24,6 +24,7 @@ > > #include > > #include > > #include > > +#include > > #include > > #include > > #include > > @@ -1111,6 +1112,12 @@ long > do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) > > u_domctl) > > } > > break; > > > > + case XEN_DOMCTL_mem_event_op: > > + ret = mem_event_domctl(d, &op->u.mem_event_op, > > + guest_handle_cast(u_domctl, void)); > > + copyback = 1; > > + break; > > + > > case XEN_DOMCTL_disable_migrate: > > { > > d->disable_migrate = op->u.disable_migrate.disable; > > diff --git a/xen/common/mem_event.c b/xen/common/mem_event.c > > index 9f1a1b0..4338826 100644 > > --- a/xen/common/mem_event.c > > +++ b/xen/common/mem_event.c > > @@ -623,12 +623,10 @@ int mem_event_domctl(struct domain *d, > > xen_domctl_mem_event_op_t *mec, > > HVM_PARAM_ACCESS_RING_PFN, > > mem_access_notification); > > > > - if ( mec->op != XEN_DOMCTL_MEM_EVENT_OP_ACCESS_ENABLE && > > - rc == 0 && hvm_funcs.enable_msr_exit_interception ) > > - { > > - d->arch.hvm_domain.introspection_enabled = 1; > > - hvm_funcs.enable_msr_exit_interception(d); > > - } > > + if ( mec->op == > > XEN_DOMCTL_MEM_EVENT_OP_ACCESS_ENABLE_INTROSPECTION > > + && !rc ) > > + p2m_setup_introspection(d); > > + > > } > > break; > > > > diff --git a/xen/common/memory.c b/xen/common/memory.c > > index bad50cb..cc36e39 100644 > > --- a/xen/common/memory.c > > +++ b/xen/common/memory.c > > @@ -21,13 +21,14 @@ > > #include > > #include > > #include > > +#include > > +#include > > +#include > > #include > > #include > > #include > > -#include > > #include > > #include > > -#include > > > > struct memop_args { > > /* INPUT */ > > @@ -939,6 +940,10 @@ long do_memory_op(unsigned long cmd, > > XEN_GUEST_HANDLE_PARAM(void) arg) > > break; > > } > > > > + case XENMEM_access_op: > > + rc = mem_access_memop(cmd, guest_handle_cast(arg, > > xen_mem_access_op_t)); > > + break; > > + > > case XENMEM_claim_pages: > > if ( copy_from_guest(&reservation, arg, 1) ) > > return -EFAULT; > > diff --git a/xen/include/asm-arm/p2m.h b/xen/include/asm-arm/p2m.h > > index 4d5570a..10bf111 100644 > > --- a/xen/include/asm-arm/p2m.h > > +++ b/xen/include/asm-arm/p2m.h > > @@ -77,6 +77,12 @@ void p2m_mem_event_emulate_check(struct vcpu *v, > > /* Not supported on ARM. */ > > }; > > > > +static inline > > +void p2m_setup_introspection(struct domain *d) > > +{ > > + /* No special setup on ARM. */ > > +} > > + > > #define p2m_is_foreign(_t) ((_t) == p2m_map_foreign) > > #define p2m_is_ram(_t) ((_t) == p2m_ram_rw || (_t) == p2m_ram_ro) > > > > diff --git a/xen/include/asm-x86/p2m.h b/xen/include/asm-x86/p2m.h > > index 1de493e..a0e1704 100644 > > --- a/xen/include/asm-x86/p2m.h > > +++ b/xen/include/asm-x86/p2m.h > > @@ -589,6 +589,9 @@ int p2m_get_mem_access(struct domain *d, unsigned > long > > pfn, > > void p2m_mem_event_emulate_check(struct vcpu *v, > > const mem_event_response_t *rsp); > > > > +/* Enable arch specific introspection options (such as MSR > interception). > > */ > > +void p2m_setup_introspection(struct domain *d); > > + > > /* > > * Internal functions, only called by other p2m code > > */ > > -- > > 2.1.0 > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel > --001a11c12212e561a10503cf5ecd Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable


On Wed, Sep 24, 2014 at 2:22 PM, Jan Beulich <JBeulich@suse.com>= ; wrote:
>>> On 24.09.14 at 11:09, <tklengyel@sec.in.tum.de> wrote:
> Signed-off-by: Tamas K Lengyel <tklengyel@sec.in.tum.de>

for the non-ARM, non-x86/mm parts
Acked-by: Jan Beulich <jbeulich@sus= e.com>

But you failed to Cc relevant people for those other parts (and you
Cc-ed too few for the common code changes).

=
Thanks. I used the get_maintainer= .pl script to grab only the relevant folks for these two patches. I'= ;m not sure why it did miss folks.

Tamas
=A0

Jan

> ---
> v9: Rename abstracted function to p2m_setup_introspection.
> v8: Move the new enable_msr_exit_interception test into the p2m layer.=
> v6: Grouping style fix of #includes in common/memory.c.
> v5: Move memop compat into common as well.
>=A0 =A0 =A0Position domctl in switch relative to the domctl #.
> v4: Don't remove memop handling from x86_64/compat and style fixes= .
> ---
>=A0 xen/arch/x86/domctl.c=A0 =A0 =A0 =A0 =A0 =A0|=A0 8 --------
>=A0 xen/arch/x86/mm/p2m.c=A0 =A0 =A0 =A0 =A0 =A0|=A0 9 +++++++++
>=A0 xen/arch/x86/x86_64/compat/mm.c |=A0 4 ----
>=A0 xen/arch/x86/x86_64/mm.c=A0 =A0 =A0 =A0 |=A0 4 ----
>=A0 xen/common/compat/memory.c=A0 =A0 =A0 |=A0 5 +++++
>=A0 xen/common/domctl.c=A0 =A0 =A0 =A0 =A0 =A0 =A0|=A0 7 +++++++
>=A0 xen/common/mem_event.c=A0 =A0 =A0 =A0 =A0 | 10 ++++------
>=A0 xen/common/memory.c=A0 =A0 =A0 =A0 =A0 =A0 =A0|=A0 9 +++++++--
>=A0 xen/include/asm-arm/p2m.h=A0 =A0 =A0 =A0|=A0 6 ++++++
>=A0 xen/include/asm-x86/p2m.h=A0 =A0 =A0 =A0|=A0 3 +++
>=A0 10 files changed, 41 insertions(+), 24 deletions(-)
>
> diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
> index 8731e7f..ec77555 100644
> --- a/xen/arch/x86/domctl.c
> +++ b/xen/arch/x86/domctl.c
> @@ -1131,14 +1131,6 @@ long arch_do_domctl(
>=A0 =A0 =A0 }
>=A0 =A0 =A0 break;
>
> -=A0 =A0 case XEN_DOMCTL_mem_event_op:
> -=A0 =A0 {
> -=A0 =A0 =A0 =A0 ret =3D mem_event_domctl(d, &domctl->u.mem_eve= nt_op,
> -=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 guest_han= dle_cast(u_domctl, void));
> -=A0 =A0 =A0 =A0 copyback =3D 1;
> -=A0 =A0 }
> -=A0 =A0 break;
> -
>=A0 =A0 =A0 case XEN_DOMCTL_mem_sharing_op:
>=A0 =A0 =A0 {
>=A0 =A0 =A0 =A0 =A0 ret =3D mem_sharing_domctl(d, &domctl->u.mem= _sharing_op);
> diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c
> index 08adaac..728e4eb 100644
> --- a/xen/arch/x86/mm/p2m.c
> +++ b/xen/arch/x86/mm/p2m.c
> @@ -1436,6 +1436,15 @@ void p2m_mem_event_emulate_check(struct vcpu *v= , const
> mem_event_response_t *rsp
>=A0 =A0 =A0 }
>=A0 }
>
> +void p2m_setup_introspection(struct domain *d)
> +{
> +=A0 =A0 if ( hvm_funcs.enable_msr_exit_interception )
> +=A0 =A0 {
> +=A0 =A0 =A0 =A0 d->arch.hvm_domain.introspection_enabled =3D 1; > +=A0 =A0 =A0 =A0 hvm_funcs.enable_msr_exit_interception(d);
> +=A0 =A0 }
> +}
> +
>=A0 bool_t p2m_mem_access_check(paddr_t gpa, unsigned long gla,
>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 struct npfe= c npfec,
>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 mem_event_r= equest_t **req_ptr)
> diff --git a/xen/arch/x86/x86_64/compat/mm.c b/xen/arch/x86/x86_64/com= pat/mm.c
> index c079702..54f25b7 100644
> --- a/xen/arch/x86/x86_64/compat/mm.c
> +++ b/xen/arch/x86/x86_64/compat/mm.c
> @@ -198,10 +198,6 @@ int compat_arch_memory_op(unsigned long cmd,
> XEN_GUEST_HANDLE_PARAM(void) arg)
>=A0 =A0 =A0 =A0 =A0 break;
>=A0 =A0 =A0 }
>
> -=A0 =A0 case XENMEM_access_op:
> -=A0 =A0 =A0 =A0 rc =3D mem_access_memop(cmd, guest_handle_cast(arg, > xen_mem_access_op_t));
> -=A0 =A0 =A0 =A0 break;
> -
>=A0 =A0 =A0 case XENMEM_sharing_op:
>=A0 =A0 =A0 {
>=A0 =A0 =A0 =A0 =A0 xen_mem_sharing_op_t mso;
> diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
> index cce1406..8e5a1a1 100644
> --- a/xen/arch/x86/x86_64/mm.c
> +++ b/xen/arch/x86/x86_64/mm.c
> @@ -995,10 +995,6 @@ long subarch_memory_op(unsigned long cmd,
> XEN_GUEST_HANDLE_PARAM(void) arg)
>=A0 =A0 =A0 =A0 =A0 break;
>=A0 =A0 =A0 }
>
> -=A0 =A0 case XENMEM_access_op:
> -=A0 =A0 =A0 =A0 rc =3D mem_access_memop(cmd, guest_handle_cast(arg, > xen_mem_access_op_t));
> -=A0 =A0 =A0 =A0 break;
> -
>=A0 =A0 =A0 case XENMEM_sharing_op:
>=A0 =A0 =A0 {
>=A0 =A0 =A0 =A0 =A0 xen_mem_sharing_op_t mso;
> diff --git a/xen/common/compat/memory.c b/xen/common/compat/memory.c > index 25dc016..43d02bc 100644
> --- a/xen/common/compat/memory.c
> +++ b/xen/common/compat/memory.c
> @@ -4,6 +4,7 @@
>=A0 #include <xen/guest_access.h>
>=A0 #include <xen/sched.h>
>=A0 #include <xen/event.h>
> +#include <xen/mem_access.h>
>=A0 #include <asm/current.h>
>=A0 #include <compat/memory.h>
>
> @@ -381,6 +382,10 @@ int compat_memory_op(unsigned int cmd,
> XEN_GUEST_HANDLE_PARAM(void) compat)
>=A0 =A0 =A0 =A0 =A0 =A0 =A0 break;
>=A0 =A0 =A0 =A0 =A0 }
>
> +=A0 =A0 =A0 =A0 case XENMEM_access_op:
> +=A0 =A0 =A0 =A0 =A0 =A0 rc =3D mem_access_memop(cmd, guest_handle_cas= t(compat,
> xen_mem_access_op_t));
> +=A0 =A0 =A0 =A0 =A0 =A0 break;
> +
>=A0 =A0 =A0 =A0 =A0 case XENMEM_add_to_physmap_batch:
>=A0 =A0 =A0 =A0 =A0 =A0 =A0 start_extent =3D end_extent;
>=A0 =A0 =A0 =A0 =A0 =A0 =A0 break;
> diff --git a/xen/common/domctl.c b/xen/common/domctl.c
> index 329e535..fd8dd44 100644
> --- a/xen/common/domctl.c
> +++ b/xen/common/domctl.c
> @@ -24,6 +24,7 @@
>=A0 #include <xen/bitmap.h>
>=A0 #include <xen/paging.h>
>=A0 #include <xen/hypercall.h>
> +#include <xen/mem_event.h>
>=A0 #include <asm/current.h>
>=A0 #include <asm/irq.h>
>=A0 #include <asm/page.h>
> @@ -1111,6 +1112,12 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domct= l_t)
> u_domctl)
>=A0 =A0 =A0 }
>=A0 =A0 =A0 break;
>
> +=A0 =A0 case XEN_DOMCTL_mem_event_op:
> +=A0 =A0 =A0 =A0 ret =3D mem_event_domctl(d, &op->u.mem_event_o= p,
> +=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0guest_= handle_cast(u_domctl, void));
> +=A0 =A0 =A0 =A0 copyback =3D 1;
> +=A0 =A0 =A0 =A0 break;
> +
>=A0 =A0 =A0 case XEN_DOMCTL_disable_migrate:
>=A0 =A0 =A0 {
>=A0 =A0 =A0 =A0 =A0 d->disable_migrate =3D op->u.disable_migrate.= disable;
> diff --git a/xen/common/mem_event.c b/xen/common/mem_event.c
> index 9f1a1b0..4338826 100644
> --- a/xen/common/mem_event.c
> +++ b/xen/common/mem_event.c
> @@ -623,12 +623,10 @@ int mem_event_domctl(struct domain *d,
> xen_domctl_mem_event_op_t *mec,
>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 HVM_PARAM_ACCESS_RING_PFN,
>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 mem_access_notification);
>
> -=A0 =A0 =A0 =A0 =A0 =A0 if ( mec->op !=3D XEN_DOMCTL_MEM_EVENT_OP_= ACCESS_ENABLE &&
> -=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0rc =3D=3D 0 && hvm_funcs.e= nable_msr_exit_interception )
> -=A0 =A0 =A0 =A0 =A0 =A0 {
> -=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 d->arch.hvm_domain.introspection_e= nabled =3D 1;
> -=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 hvm_funcs.enable_msr_exit_interceptio= n(d);
> -=A0 =A0 =A0 =A0 =A0 =A0 }
> +=A0 =A0 =A0 =A0 =A0 =A0 if ( mec->op =3D=3D
> XEN_DOMCTL_MEM_EVENT_OP_ACCESS_ENABLE_INTROSPECTION
> +=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0&& !rc )
> +=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 p2m_setup_introspection(d);
> +
>=A0 =A0 =A0 =A0 =A0 }
>=A0 =A0 =A0 =A0 =A0 break;
>
> diff --git a/xen/common/memory.c b/xen/common/memory.c
> index bad50cb..cc36e39 100644
> --- a/xen/common/memory.c
> +++ b/xen/common/memory.c
> @@ -21,13 +21,14 @@
>=A0 #include <xen/errno.h>
>=A0 #include <xen/tmem.h>
>=A0 #include <xen/tmem_xen.h>
> +#include <xen/numa.h>
> +#include <xen/mem_access.h>
> +#include <xen/trace.h>
>=A0 #include <asm/current.h>
>=A0 #include <asm/hardirq.h>
>=A0 #include <asm/p2m.h>
> -#include <xen/numa.h>
>=A0 #include <public/memory.h>
>=A0 #include <xsm/xsm.h>
> -#include <xen/trace.h>
>
>=A0 struct memop_args {
>=A0 =A0 =A0 /* INPUT */
> @@ -939,6 +940,10 @@ long do_memory_op(unsigned long cmd,
> XEN_GUEST_HANDLE_PARAM(void) arg)
>=A0 =A0 =A0 =A0 =A0 break;
>=A0 =A0 =A0 }
>
> +=A0 =A0 case XENMEM_access_op:
> +=A0 =A0 =A0 =A0 rc =3D mem_access_memop(cmd, guest_handle_cast(arg, > xen_mem_access_op_t));
> +=A0 =A0 =A0 =A0 break;
> +
>=A0 =A0 =A0 case XENMEM_claim_pages:
>=A0 =A0 =A0 =A0 =A0 if ( copy_from_guest(&reservation, arg, 1) ) >=A0 =A0 =A0 =A0 =A0 =A0 =A0 return -EFAULT;
> diff --git a/xen/include/asm-arm/p2m.h b/xen/include/asm-arm/p2m.h
> index 4d5570a..10bf111 100644
> --- a/xen/include/asm-arm/p2m.h
> +++ b/xen/include/asm-arm/p2m.h
> @@ -77,6 +77,12 @@ void p2m_mem_event_emulate_check(struct vcpu *v, >=A0 =A0 =A0 /* Not supported on ARM. */
>=A0 };
>
> +static inline
> +void p2m_setup_introspection(struct domain *d)
> +{
> +=A0 =A0 /* No special setup on ARM. */
> +}
> +
>=A0 #define p2m_is_foreign(_t)=A0 ((_t) =3D=3D p2m_map_foreign)
>=A0 #define p2m_is_ram(_t)=A0 =A0 =A0 ((_t) =3D=3D p2m_ram_rw || (_t) = =3D=3D p2m_ram_ro)
>
> diff --git a/xen/include/asm-x86/p2m.h b/xen/include/asm-x86/p2m.h
> index 1de493e..a0e1704 100644
> --- a/xen/include/asm-x86/p2m.h
> +++ b/xen/include/asm-x86/p2m.h
> @@ -589,6 +589,9 @@ int p2m_get_mem_access(struct domain *d, unsigned = long
> pfn,
>=A0 void p2m_mem_event_emulate_check(struct vcpu *v,
>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= const mem_event_response_t *rsp);
>
> +/* Enable arch specific introspection options (such as MSR intercepti= on).
> */
> +void p2m_setup_introspection(struct domain *d);
> +
>=A0 /*
>=A0 =A0* Internal functions, only called by other p2m code
>=A0 =A0*/
> --
> 2.1.0



_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.x= en.org/xen-devel

--001a11c12212e561a10503cf5ecd-- --===============0084861251457827874== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel --===============0084861251457827874==--