Message ID | 1465906027-16614-9-git-send-email-julien.grall@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 14/06/16 13:07, Julien Grall wrote: > p2m_cache_flush is expecting GFNs in parameter and not MFNs. Rename > the variable to *gfn* and use typesafe to avoid possible misusage. > > Signed-off-by: Julien Grall <julien.grall@arm.com> > --- > xen/arch/arm/domctl.c | 2 +- > xen/arch/arm/p2m.c | 10 +++++----- > xen/include/asm-arm/p2m.h | 2 +- > 3 files changed, 7 insertions(+), 7 deletions(-) > > diff --git a/xen/arch/arm/domctl.c b/xen/arch/arm/domctl.c > index 30453d8..b94e97c 100644 > --- a/xen/arch/arm/domctl.c > +++ b/xen/arch/arm/domctl.c > @@ -30,7 +30,7 @@ long arch_do_domctl(struct xen_domctl *domctl, struct domain *d, > if ( e < s ) > return -EINVAL; > > - return p2m_cache_flush(d, s, e); > + return p2m_cache_flush(d, _gfn(s), _gfn(e)); > } > case XEN_DOMCTL_bind_pt_irq: > { > diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c > index 135d032..d50eda3 100644 > --- a/xen/arch/arm/p2m.c > +++ b/xen/arch/arm/p2m.c > @@ -1467,16 +1467,16 @@ int relinquish_p2m_mapping(struct domain *d) > d->arch.p2m.default_access); > } > > -int p2m_cache_flush(struct domain *d, xen_pfn_t start_mfn, xen_pfn_t end_mfn) > +int p2m_cache_flush(struct domain *d, gfn_t start_gfn, gfn_t end_gfn) I would recommend dropping the _gfn suffix from start and end. It only serves to make the code longer, as the numbers are of gfn_t type. ~Andrew
diff --git a/xen/arch/arm/domctl.c b/xen/arch/arm/domctl.c index 30453d8..b94e97c 100644 --- a/xen/arch/arm/domctl.c +++ b/xen/arch/arm/domctl.c @@ -30,7 +30,7 @@ long arch_do_domctl(struct xen_domctl *domctl, struct domain *d, if ( e < s ) return -EINVAL; - return p2m_cache_flush(d, s, e); + return p2m_cache_flush(d, _gfn(s), _gfn(e)); } case XEN_DOMCTL_bind_pt_irq: { diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c index 135d032..d50eda3 100644 --- a/xen/arch/arm/p2m.c +++ b/xen/arch/arm/p2m.c @@ -1467,16 +1467,16 @@ int relinquish_p2m_mapping(struct domain *d) d->arch.p2m.default_access); } -int p2m_cache_flush(struct domain *d, xen_pfn_t start_mfn, xen_pfn_t end_mfn) +int p2m_cache_flush(struct domain *d, gfn_t start_gfn, gfn_t end_gfn) { struct p2m_domain *p2m = &d->arch.p2m; - start_mfn = MAX(start_mfn, p2m->lowest_mapped_gfn); - end_mfn = MIN(end_mfn, p2m->max_mapped_gfn); + start_gfn = max_gfn(start_gfn, _gfn(p2m->lowest_mapped_gfn)); + end_gfn = min_gfn(end_gfn, _gfn(p2m->max_mapped_gfn)); return apply_p2m_changes(d, CACHEFLUSH, - pfn_to_paddr(start_mfn), - pfn_to_paddr(end_mfn), + pfn_to_paddr(gfn_x(start_gfn)), + pfn_to_paddr(gfn_x(end_gfn)), pfn_to_paddr(INVALID_MFN), MATTR_MEM, 0, p2m_invalid, d->arch.p2m.default_access); diff --git a/xen/include/asm-arm/p2m.h b/xen/include/asm-arm/p2m.h index f204482..03a5cce 100644 --- a/xen/include/asm-arm/p2m.h +++ b/xen/include/asm-arm/p2m.h @@ -139,7 +139,7 @@ void p2m_dump_info(struct domain *d); mfn_t p2m_lookup(struct domain *d, gfn_t gfn, p2m_type_t *t); /* Clean & invalidate caches corresponding to a region of guest address space */ -int p2m_cache_flush(struct domain *d, xen_pfn_t start_mfn, xen_pfn_t end_mfn); +int p2m_cache_flush(struct domain *d, gfn_t start_gfn, gfn_t end_gfn); /* Setup p2m RAM mapping for domain d from start-end. */ int p2m_populate_ram(struct domain *d, paddr_t start, paddr_t end);
p2m_cache_flush is expecting GFNs in parameter and not MFNs. Rename the variable to *gfn* and use typesafe to avoid possible misusage. Signed-off-by: Julien Grall <julien.grall@arm.com> --- xen/arch/arm/domctl.c | 2 +- xen/arch/arm/p2m.c | 10 +++++----- xen/include/asm-arm/p2m.h | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-)