From: Cyril Chemparathy <cyril@ti.com> To: <linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org> Cc: <arnd@arndb.de>, <catalin.marinas@arm.com>, <nico@linaro.org>, <linux@arm.linux.org.uk>, <will.deacon@arm.com>, Cyril Chemparathy <cyril@ti.com>, Vitaly Andrianov <vitalya@ti.com> Subject: [PATCH 03/22] ARM: LPAE: use phys_addr_t on virt <--> phys conversion Date: Tue, 31 Jul 2012 19:04:39 -0400 [thread overview] Message-ID: <1343775898-28345-4-git-send-email-cyril@ti.com> (raw) In-Reply-To: <1343775898-28345-1-git-send-email-cyril@ti.com> This patch fixes up the types used when converting back and forth between physical and virtual addresses. Signed-off-by: Vitaly Andrianov <vitalya@ti.com> Signed-off-by: Cyril Chemparathy <cyril@ti.com> --- arch/arm/include/asm/memory.h | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/arch/arm/include/asm/memory.h b/arch/arm/include/asm/memory.h index 01c710d..4a0108f 100644 --- a/arch/arm/include/asm/memory.h +++ b/arch/arm/include/asm/memory.h @@ -157,22 +157,27 @@ extern unsigned long __pv_phys_offset; extern unsigned long __pv_offset; -static inline unsigned long __virt_to_phys(unsigned long x) +static inline phys_addr_t __virt_to_phys(unsigned long x) { unsigned long t; early_patch_imm8(x, t, "add", __pv_offset); return t; } -static inline unsigned long __phys_to_virt(unsigned long x) +static inline unsigned long __phys_to_virt(phys_addr_t x) { unsigned long t; early_patch_imm8(x, t, "sub", __pv_offset); return t; } #else -#define __virt_to_phys(x) ((x) - PAGE_OFFSET + PHYS_OFFSET) -#define __phys_to_virt(x) ((x) - PHYS_OFFSET + PAGE_OFFSET) + +#define __virt_to_phys(x) \ + ((phys_addr_t)(x) - PAGE_OFFSET + PHYS_OFFSET) + +#define __phys_to_virt(x) \ + ((unsigned long)((phys_addr_t)(x) - PHYS_OFFSET + PAGE_OFFSET)) + #endif #endif @@ -207,14 +212,14 @@ static inline phys_addr_t virt_to_phys(const volatile void *x) static inline void *phys_to_virt(phys_addr_t x) { - return (void *)(__phys_to_virt((unsigned long)(x))); + return (void *)__phys_to_virt(x); } /* * Drivers should NOT use these either. */ #define __pa(x) __virt_to_phys((unsigned long)(x)) -#define __va(x) ((void *)__phys_to_virt((unsigned long)(x))) +#define __va(x) ((void *)__phys_to_virt((phys_addr_t)(x))) #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) /* -- 1.7.9.5
WARNING: multiple messages have this Message-ID (diff)
From: cyril@ti.com (Cyril Chemparathy) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 03/22] ARM: LPAE: use phys_addr_t on virt <--> phys conversion Date: Tue, 31 Jul 2012 19:04:39 -0400 [thread overview] Message-ID: <1343775898-28345-4-git-send-email-cyril@ti.com> (raw) In-Reply-To: <1343775898-28345-1-git-send-email-cyril@ti.com> This patch fixes up the types used when converting back and forth between physical and virtual addresses. Signed-off-by: Vitaly Andrianov <vitalya@ti.com> Signed-off-by: Cyril Chemparathy <cyril@ti.com> --- arch/arm/include/asm/memory.h | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/arch/arm/include/asm/memory.h b/arch/arm/include/asm/memory.h index 01c710d..4a0108f 100644 --- a/arch/arm/include/asm/memory.h +++ b/arch/arm/include/asm/memory.h @@ -157,22 +157,27 @@ extern unsigned long __pv_phys_offset; extern unsigned long __pv_offset; -static inline unsigned long __virt_to_phys(unsigned long x) +static inline phys_addr_t __virt_to_phys(unsigned long x) { unsigned long t; early_patch_imm8(x, t, "add", __pv_offset); return t; } -static inline unsigned long __phys_to_virt(unsigned long x) +static inline unsigned long __phys_to_virt(phys_addr_t x) { unsigned long t; early_patch_imm8(x, t, "sub", __pv_offset); return t; } #else -#define __virt_to_phys(x) ((x) - PAGE_OFFSET + PHYS_OFFSET) -#define __phys_to_virt(x) ((x) - PHYS_OFFSET + PAGE_OFFSET) + +#define __virt_to_phys(x) \ + ((phys_addr_t)(x) - PAGE_OFFSET + PHYS_OFFSET) + +#define __phys_to_virt(x) \ + ((unsigned long)((phys_addr_t)(x) - PHYS_OFFSET + PAGE_OFFSET)) + #endif #endif @@ -207,14 +212,14 @@ static inline phys_addr_t virt_to_phys(const volatile void *x) static inline void *phys_to_virt(phys_addr_t x) { - return (void *)(__phys_to_virt((unsigned long)(x))); + return (void *)__phys_to_virt(x); } /* * Drivers should NOT use these either. */ #define __pa(x) __virt_to_phys((unsigned long)(x)) -#define __va(x) ((void *)__phys_to_virt((unsigned long)(x))) +#define __va(x) ((void *)__phys_to_virt((phys_addr_t)(x))) #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) /* -- 1.7.9.5
next prev parent reply other threads:[~2012-07-31 23:06 UTC|newest] Thread overview: 127+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-07-31 23:04 [PATCH 00/22] Introducing the TI Keystone platform Cyril Chemparathy 2012-07-31 23:04 ` Cyril Chemparathy 2012-07-31 23:04 ` [PATCH 01/22] ARM: add mechanism for late code patching Cyril Chemparathy 2012-07-31 23:04 ` Cyril Chemparathy 2012-08-04 5:38 ` Nicolas Pitre 2012-08-04 5:38 ` Nicolas Pitre 2012-08-05 13:56 ` Cyril Chemparathy 2012-08-05 13:56 ` Cyril Chemparathy 2012-08-07 22:52 ` Cyril Chemparathy 2012-08-07 22:52 ` Cyril Chemparathy 2012-08-08 5:56 ` Nicolas Pitre 2012-08-08 5:56 ` Nicolas Pitre 2012-08-08 13:18 ` Cyril Chemparathy 2012-08-08 13:18 ` Cyril Chemparathy 2012-08-08 13:55 ` Nicolas Pitre 2012-08-08 13:55 ` Nicolas Pitre 2012-08-08 16:05 ` Russell King - ARM Linux 2012-08-08 16:05 ` Russell King - ARM Linux 2012-08-08 16:56 ` Nicolas Pitre 2012-08-08 16:56 ` Nicolas Pitre 2012-08-09 6:59 ` Tixy 2012-08-09 6:59 ` Tixy 2012-08-06 11:12 ` Russell King - ARM Linux 2012-08-06 11:12 ` Russell King - ARM Linux 2012-08-06 13:19 ` Cyril Chemparathy 2012-08-06 13:19 ` Cyril Chemparathy 2012-08-06 13:26 ` Russell King - ARM Linux 2012-08-06 13:26 ` Russell King - ARM Linux 2012-08-06 13:38 ` Cyril Chemparathy 2012-08-06 13:38 ` Cyril Chemparathy 2012-08-06 18:02 ` Nicolas Pitre 2012-08-06 18:02 ` Nicolas Pitre 2012-07-31 23:04 ` [PATCH 02/22] ARM: use late patch framework for phys-virt patching Cyril Chemparathy 2012-07-31 23:04 ` Cyril Chemparathy 2012-08-04 6:15 ` Nicolas Pitre 2012-08-04 6:15 ` Nicolas Pitre 2012-08-05 14:03 ` Cyril Chemparathy 2012-08-05 14:03 ` Cyril Chemparathy 2012-08-06 2:06 ` Nicolas Pitre 2012-08-06 2:06 ` Nicolas Pitre 2012-07-31 23:04 ` Cyril Chemparathy [this message] 2012-07-31 23:04 ` [PATCH 03/22] ARM: LPAE: use phys_addr_t on virt <--> phys conversion Cyril Chemparathy 2012-08-04 6:24 ` Nicolas Pitre 2012-08-04 6:24 ` Nicolas Pitre 2012-08-05 14:05 ` Cyril Chemparathy 2012-08-05 14:05 ` Cyril Chemparathy 2012-08-06 11:14 ` Russell King - ARM Linux 2012-08-06 11:14 ` Russell King - ARM Linux 2012-08-06 13:30 ` Cyril Chemparathy 2012-08-06 13:30 ` Cyril Chemparathy 2012-08-09 14:10 ` Cyril Chemparathy 2012-08-09 14:10 ` Cyril Chemparathy 2012-07-31 23:04 ` [PATCH 04/22] ARM: LPAE: support 64-bit virt/phys patching Cyril Chemparathy 2012-07-31 23:04 ` Cyril Chemparathy 2012-08-04 6:49 ` Nicolas Pitre 2012-08-04 6:49 ` Nicolas Pitre 2012-08-05 14:21 ` Cyril Chemparathy 2012-08-05 14:21 ` Cyril Chemparathy 2012-08-06 2:19 ` Nicolas Pitre 2012-08-06 2:19 ` Nicolas Pitre 2012-07-31 23:04 ` [PATCH 05/22] ARM: LPAE: use signed arithmetic for mask definitions Cyril Chemparathy 2012-07-31 23:04 ` Cyril Chemparathy 2012-07-31 23:04 ` [PATCH 06/22] ARM: LPAE: use phys_addr_t in alloc_init_pud() Cyril Chemparathy 2012-07-31 23:04 ` Cyril Chemparathy 2012-08-01 12:08 ` Sergei Shtylyov 2012-08-01 12:08 ` Sergei Shtylyov 2012-08-01 15:42 ` Cyril Chemparathy 2012-08-01 15:42 ` Cyril Chemparathy 2012-08-04 6:51 ` Nicolas Pitre 2012-08-04 6:51 ` Nicolas Pitre 2012-07-31 23:04 ` [PATCH 07/22] ARM: LPAE: use phys_addr_t in free_memmap() Cyril Chemparathy 2012-07-31 23:04 ` Cyril Chemparathy 2012-08-04 6:54 ` Nicolas Pitre 2012-08-04 6:54 ` Nicolas Pitre 2012-07-31 23:04 ` [PATCH 08/22] ARM: LPAE: use phys_addr_t for initrd location and size Cyril Chemparathy 2012-07-31 23:04 ` Cyril Chemparathy 2012-08-04 6:57 ` Nicolas Pitre 2012-08-04 6:57 ` Nicolas Pitre 2012-08-05 14:23 ` Cyril Chemparathy 2012-08-05 14:23 ` Cyril Chemparathy 2012-07-31 23:04 ` [PATCH 09/22] ARM: LPAE: use 64-bit pgd physical address in switch_mm() Cyril Chemparathy 2012-07-31 23:04 ` Cyril Chemparathy 2012-08-04 7:04 ` Nicolas Pitre 2012-08-04 7:04 ` Nicolas Pitre 2012-08-05 14:29 ` Cyril Chemparathy 2012-08-05 14:29 ` Cyril Chemparathy 2012-08-06 2:35 ` Nicolas Pitre 2012-08-06 2:35 ` Nicolas Pitre 2012-07-31 23:04 ` [PATCH 10/22] ARM: LPAE: use 64-bit accessors for TTBR registers Cyril Chemparathy 2012-07-31 23:04 ` Cyril Chemparathy 2012-07-31 23:04 ` [PATCH 11/22] ARM: LPAE: define ARCH_LOW_ADDRESS_LIMIT for bootmem Cyril Chemparathy 2012-07-31 23:04 ` Cyril Chemparathy 2012-07-31 23:04 ` [PATCH 12/22] ARM: LPAE: factor out T1SZ and TTBR1 computations Cyril Chemparathy 2012-07-31 23:04 ` Cyril Chemparathy 2012-07-31 23:04 ` [PATCH 13/22] ARM: LPAE: allow proc override of TTB setup Cyril Chemparathy 2012-07-31 23:04 ` Cyril Chemparathy 2012-07-31 23:04 ` [PATCH 14/22] ARM: LPAE: accomodate >32-bit addresses for page table base Cyril Chemparathy 2012-07-31 23:04 ` Cyril Chemparathy 2012-07-31 23:04 ` [PATCH 15/22] ARM: mm: use physical addresses in highmem sanity checks Cyril Chemparathy 2012-07-31 23:04 ` Cyril Chemparathy 2012-07-31 23:04 ` [PATCH 16/22] ARM: mm: cleanup checks for membank overlap with vmalloc area Cyril Chemparathy 2012-07-31 23:04 ` Cyril Chemparathy 2012-07-31 23:04 ` [PATCH 17/22] ARM: mm: clean up membank size limit checks Cyril Chemparathy 2012-07-31 23:04 ` Cyril Chemparathy 2012-07-31 23:04 ` [PATCH 18/22] ARM: add virt_to_idmap for interconnect aliasing Cyril Chemparathy 2012-07-31 23:04 ` Cyril Chemparathy 2012-07-31 23:04 ` [PATCH 19/22] ARM: recreate kernel mappings in early_paging_init() Cyril Chemparathy 2012-07-31 23:04 ` Cyril Chemparathy 2012-07-31 23:04 ` [RFC 20/22] ARM: keystone: introducing TI Keystone platform Cyril Chemparathy 2012-07-31 23:06 ` Cyril Chemparathy 2012-07-31 23:16 ` Arnd Bergmann 2012-07-31 23:16 ` Arnd Bergmann 2012-08-01 15:41 ` Cyril Chemparathy 2012-08-01 15:41 ` Cyril Chemparathy 2012-08-01 17:20 ` Arnd Bergmann 2012-07-31 23:04 ` [RFC 21/22] ARM: keystone: enable SMP on Keystone machines Cyril Chemparathy 2012-07-31 23:05 ` Cyril Chemparathy 2012-07-31 23:04 ` [RFC 22/22] ARM: keystone: add switch over to high physical address range Cyril Chemparathy 2012-07-31 23:05 ` Cyril Chemparathy 2012-08-04 8:39 ` [PATCH 00/22] Introducing the TI Keystone platform Russell King - ARM Linux 2012-08-04 8:39 ` Russell King - ARM Linux 2012-08-05 15:10 ` Cyril Chemparathy 2012-08-05 15:10 ` Cyril Chemparathy 2012-08-08 15:43 ` Catalin Marinas 2012-08-08 15:43 ` Catalin Marinas 2012-08-08 13:57 ` Will Deacon 2012-08-08 13:57 ` Will Deacon
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1343775898-28345-4-git-send-email-cyril@ti.com \ --to=cyril@ti.com \ --cc=arnd@arndb.de \ --cc=catalin.marinas@arm.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux@arm.linux.org.uk \ --cc=nico@linaro.org \ --cc=vitalya@ti.com \ --cc=will.deacon@arm.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.