From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: [PATCH 4/5] xen: arm: make sure pagetable mask macros have appropriate size Date: Mon, 7 Oct 2013 12:38:15 +0100 Message-ID: <1381145896-25890-4-git-send-email-ian.campbell@citrix.com> References: <1381145870.21562.93.camel@kazak.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1381145870.21562.93.camel@kazak.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@linaro.org, tim@xen.org, Ian Campbell , anup.patel@linaro.org, stefano.stabellini@eu.citrix.com List-Id: xen-devel@lists.xenproject.org {ZEROETH,FIRST,SECOND,THIRD}_MASK are used with physical addresses which may be larger than 32 bits. Therefore ensure that they are wide enough by casting to paddr_t otherwise we may truncate addresses on 32-bit. Signed-off-by: Ian Campbell --- xen/include/asm-arm/page.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h index 3d0f8a9..d468418 100644 --- a/xen/include/asm-arm/page.h +++ b/xen/include/asm-arm/page.h @@ -323,17 +323,17 @@ static inline int gva_to_ipa(vaddr_t va, paddr_t *paddr) #define LPAE_ENTRIES (1u << LPAE_SHIFT) #define LPAE_ENTRY_MASK (LPAE_ENTRIES - 1) -#define THIRD_SHIFT PAGE_SHIFT -#define THIRD_SIZE (1u << THIRD_SHIFT) -#define THIRD_MASK (~(THIRD_SIZE - 1)) -#define SECOND_SHIFT (THIRD_SHIFT + LPAE_SHIFT) -#define SECOND_SIZE (1u << SECOND_SHIFT) -#define SECOND_MASK (~(SECOND_SIZE - 1)) -#define FIRST_SHIFT (SECOND_SHIFT + LPAE_SHIFT) -#define FIRST_SIZE (1u << FIRST_SHIFT) -#define FIRST_MASK (~(FIRST_SIZE - 1)) +#define THIRD_SHIFT (PAGE_SHIFT) +#define THIRD_SIZE ((paddr_t)1 << THIRD_SHIFT) +#define THIRD_MASK (~(THIRD_SIZE - 1)) +#define SECOND_SHIFT (THIRD_SHIFT + LPAE_SHIFT) +#define SECOND_SIZE ((paddr_t)1 << SECOND_SHIFT) +#define SECOND_MASK (~(SECOND_SIZE - 1)) +#define FIRST_SHIFT (SECOND_SHIFT + LPAE_SHIFT) +#define FIRST_SIZE ((paddr_t)1 << FIRST_SHIFT) +#define FIRST_MASK (~(FIRST_SIZE - 1)) #define ZEROETH_SHIFT (FIRST_SHIFT + LPAE_SHIFT) -#define ZEROETH_SIZE (1u << ZEROETH_SHIFT) +#define ZEROETH_SIZE ((paddr_t)1 << ZEROETH_SHIFT) #define ZEROETH_MASK (~(ZEROETH_SIZE - 1)) /* Calculate the offsets into the pagetables for a given VA */ -- 1.7.10.4