Aravindh Puthiyaparambil
2012-Apr-18 01:09 UTC
[PATCH] mem_access: fix setting default mem_access type
When xc_hvm_set_mem_access(xch, domain_id, default_access, ~0ull, 0) is called, first_pfn=~0ull is a hint to HVMOP_set_mem_access as to what the default mem_access type is for the domain. This call was failing because it was gated by the memory range check in the HVMOP_set_mem_access case statement in do_hvm_op(). The following patch fixes this issue. Signed-off-by: Aravindh Puthiyaparambil <aravindh@virtuata.com> --- xen/arch/x86/hvm/hvm.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff -r a06e6cdeafe3 xen/arch/x86/hvm/hvm.c --- a/xen/arch/x86/hvm/hvm.c Mon Apr 16 13:05:28 2012 +0200 +++ b/xen/arch/x86/hvm/hvm.c Tue Apr 17 18:03:37 2012 -0700 @@ -4170,9 +4170,10 @@ goto param_fail5; rc = -EINVAL; - if ( (a.first_pfn > domain_get_maximum_gpfn(d)) || + if ( (a.first_pfn != ~0ull) && + ((a.first_pfn > domain_get_maximum_gpfn(d)) || ((a.first_pfn + a.nr - 1) < a.first_pfn) || - ((a.first_pfn + a.nr - 1) > domain_get_maximum_gpfn(d)) ) + ((a.first_pfn + a.nr - 1) > domain_get_maximum_gpfn(d))) ) goto param_fail5; rc = p2m_set_mem_access(d, a.first_pfn, a.nr, a.hvmmem_access);
Keir Fraser
2012-Apr-18 08:32 UTC
Re: [PATCH] mem_access: fix setting default mem_access type
On 18/04/2012 02:09, "Aravindh Puthiyaparambil" <aravindh@virtuata.com> wrote:> When xc_hvm_set_mem_access(xch, domain_id, default_access, ~0ull, 0) > is called, first_pfn=~0ull is a hint to HVMOP_set_mem_access as to > what the default mem_access type is for the domain. This call was > failing because it was gated by the memory range check in the > HVMOP_set_mem_access case statement in do_hvm_op(). The following > patch fixes this issue. > > Signed-off-by: Aravindh Puthiyaparambil <aravindh@virtuata.com>Looks okay to me. Probably should be checked and applied by Tim. -- Keir> --- > xen/arch/x86/hvm/hvm.c | 5 +++-- > 1 files changed, 3 insertions(+), 2 deletions(-) > > diff -r a06e6cdeafe3 xen/arch/x86/hvm/hvm.c > --- a/xen/arch/x86/hvm/hvm.c Mon Apr 16 13:05:28 2012 +0200 > +++ b/xen/arch/x86/hvm/hvm.c Tue Apr 17 18:03:37 2012 -0700 > @@ -4170,9 +4170,10 @@ > goto param_fail5; > > rc = -EINVAL; > - if ( (a.first_pfn > domain_get_maximum_gpfn(d)) || > + if ( (a.first_pfn != ~0ull) && > + ((a.first_pfn > domain_get_maximum_gpfn(d)) || > ((a.first_pfn + a.nr - 1) < a.first_pfn) || > - ((a.first_pfn + a.nr - 1) > domain_get_maximum_gpfn(d)) ) > + ((a.first_pfn + a.nr - 1) > domain_get_maximum_gpfn(d))) ) > goto param_fail5; > > rc = p2m_set_mem_access(d, a.first_pfn, a.nr, a.hvmmem_access); > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel
Tim Deegan
2012-Apr-18 12:40 UTC
Re: [PATCH] mem_access: fix setting default mem_access type
At 09:32 +0100 on 18 Apr (1334741539), Keir Fraser wrote:> On 18/04/2012 02:09, "Aravindh Puthiyaparambil" <aravindh@virtuata.com> > wrote: > > > When xc_hvm_set_mem_access(xch, domain_id, default_access, ~0ull, 0) > > is called, first_pfn=~0ull is a hint to HVMOP_set_mem_access as to > > what the default mem_access type is for the domain. This call was > > failing because it was gated by the memory range check in the > > HVMOP_set_mem_access case statement in do_hvm_op(). The following > > patch fixes this issue. > > > > Signed-off-by: Aravindh Puthiyaparambil <aravindh@virtuata.com> > > Looks okay to me. Probably should be checked and applied by Tim.Done. Tim.