|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3] x86/arm/mm: use gfn instead of pfn in p2m_get_mem_access/p2m_set_mem_access
Andrew Cooper <andrew.cooper3@xxxxxxxxxx> writes:
> On 26/06/15 16:17, Vitaly Kuznetsov wrote:
>> 'pfn' and 'start_pfn' are ambiguous, both these functions expect GFNs as
>> input.
>>
>> On x86 the interface of p2m_set_mem_access() in p2m.c doesn't match the
>> declaration in p2m-common.h as 'pfn' is being used instead of 'start_pfn'.
>>
>> On ARM both p2m_set_mem_access and p2m_get_mem_access interfaces don't match
>> declarations from p2m-common.h: p2m_set_mem_access uses 'pfn' instead of
>> 'start_pfn' and p2m_get_mem_access uses 'gpfn' instead of 'pfn'.
>>
>> There is also an issue in p2m_get_mem_access on x86: 'gfn' parameter passed
>> to
>> gfn_lock/gfn_unlock is not defined. This code compiles only because of a
>> coincidence: gfn_lock/gfn_unlock are currently macros which don't use their
>> second argument.
>>
>> Signed-off-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>
>> ---
>> Changes since v2:
>> - Instead of adding start_ prefix on ARM remove it on x86 [Jan Beulich,
>> Ian Campbell, Razvan Cojocaru]
>>
>> Changes since v1:
>> - This patch is a successor of '[PATCH] x86/mm: use existing 'pfn' in
>> p2m_get_mem_access', instead of fixing gfn_lock/gfn_unlock arguments we do
>> s/pfn/gfn/g for both p2m_get_mem_access/p2m_set_mem_access [Andrew Cooper,
>> Jan Beulich]
>>
>> P.S.
>> - The patch was compile-tested on x86 only.
>> ---
>> xen/arch/arm/p2m.c | 12 ++++++------
>> xen/arch/x86/mm/p2m.c | 24 ++++++++++++------------
>> xen/include/xen/p2m-common.h | 12 ++++++------
>> 3 files changed, 24 insertions(+), 24 deletions(-)
>>
>> diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
>> index 903fa3f..54c238c 100644
>> --- a/xen/arch/arm/p2m.c
>> +++ b/xen/arch/arm/p2m.c
>> @@ -1709,9 +1709,9 @@ bool_t p2m_mem_access_check(paddr_t gpa, vaddr_t gla,
>> const struct npfec npfec)
>>
>> /*
>> * Set access type for a region of pfns.
>> - * If start_pfn == -1ul, sets the default access type.
>> + * If gfn == -1ul, sets the default access type.
>> */
>> -long p2m_set_mem_access(struct domain *d, unsigned long pfn, uint32_t nr,
>> +long p2m_set_mem_access(struct domain *d, unsigned long gfn, uint32_t nr,
>> uint32_t start, uint32_t mask, xenmem_access_t
>> access)
>> {
>> struct p2m_domain *p2m = p2m_get_hostp2m(d);
>> @@ -1752,14 +1752,14 @@ long p2m_set_mem_access(struct domain *d, unsigned
>> long pfn, uint32_t nr,
>> p2m->mem_access_enabled = true;
>>
>> /* If request to set default access. */
>> - if ( pfn == ~0ul )
>> + if ( gfn == ~0ul )
>
> Please here and everywhere else in the patch, use INVALID_GFN instead of
> ~0 or -1.
>
> With those changes and the comment style from Razvan,
>
> Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
>
> However, if you feel up to it, it would be fantastic if you could
> substitute unsigned long for gfn_t, per the justification in e758ed1 and
> 177bd5f. c/s 24036a5 is an example of a different API I fixed up in a
> similar way.
Sure, will do v4.
>
> ~Andrew
--
Vitaly
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |