From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: [PATCH 08/10] xen: arm: allow virt_to_maddr to take either a pointer or an integer Date: Tue, 18 Jun 2013 14:26:55 +0100 Message-ID: <1371562017-5379-8-git-send-email-ian.campbell@citrix.com> References: <1371562002.22783.25.camel@zakaz.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1371562002.22783.25.camel@zakaz.uk.xensource.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: xen-devel@lists.xen.org Cc: julien.grall@citrix.com, tim@xen.org, Ian Campbell , stefano.stabellini@eu.citrix.com List-Id: xen-devel@lists.xenproject.org This seems to be expected by common code which passes both pointers and unsigned long as virtual addresses. The latter case in particular is in init_node_heap() under a DIRECTMAP_VIRT_END #ifdef, which is why it hasn't affected us yet (but weill in a subsequent patch). The new prototypes match the x86 versions apart from using vaddr_t instead of unsigned long. Signed-off-by: Ian Campbell --- xen/include/asm-arm/mm.h | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) diff --git a/xen/include/asm-arm/mm.h b/xen/include/asm-arm/mm.h index baaf9c3..7aca836 100644 --- a/xen/include/asm-arm/mm.h +++ b/xen/include/asm-arm/mm.h @@ -208,11 +208,12 @@ static inline void __iomem *ioremap_wc(paddr_t start, size_t len) #define paddr_to_pdx(pa) pfn_to_pdx(paddr_to_pfn(pa)) -static inline paddr_t virt_to_maddr(const void *va) +static inline paddr_t __virt_to_maddr(vaddr_t va) { - uint64_t par = va_to_par((vaddr_t)va); - return (par & PADDR_MASK & PAGE_MASK) | ((vaddr_t) va & ~PAGE_MASK); + uint64_t par = va_to_par(va); + return (par & PADDR_MASK & PAGE_MASK) | (va & ~PAGE_MASK); } +#define virt_to_maddr(va) __virt_to_maddr((vaddr_t)(va)) static inline void *maddr_to_virt(paddr_t ma) { -- 1.7.2.5