Message ID | 1421256154-18514-1-git-send-email-vitalya@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Jan 14, 2015 at 12:22:34PM -0500, Vitaly Andrianov wrote: > On a 32 bit ARM architecture with LPAE extension physical addresses > cannot fit into unsigned long variable. > > This patch fixes the ioremap_page, __map_ioremap_pfn_caller, > __arm_ioremap and __arm_ioremap_exec functions. This patch does not do what the description says. It only touches one function - ioremap_page(), which from what I can see is never called. It looks like it was introduced by Hiroshi DOYU without coming through my core ARM tree (was it even reviewed?) in 2009, but six years on, it doesn't have any users: $ git grep 'ioremap_page\>' arch/arm/include/asm/mach/map.h:extern int ioremap_page(unsigned long virt, unsi... arch/arm/mm/ioremap.c:int ioremap_page(unsigned long virt, unsigned long phys, arch/arm/mm/ioremap.c:EXPORT_SYMBOL(ioremap_page); arch/unicore32/mm/ioremap.c:int ioremap_page(unsigned long virt, unsigned long p... arch/unicore32/mm/ioremap.c:EXPORT_SYMBOL(ioremap_page); I'd much rather see a patch deleting ioremap_page(). Thanks.
diff --git a/arch/arm/include/asm/mach/map.h b/arch/arm/include/asm/mach/map.h index 2fe141f..836f006 100644 --- a/arch/arm/include/asm/mach/map.h +++ b/arch/arm/include/asm/mach/map.h @@ -52,7 +52,7 @@ extern const struct mem_type *get_mem_type(unsigned int type); /* * external interface to remap single page with appropriate type */ -extern int ioremap_page(unsigned long virt, unsigned long phys, +extern int ioremap_page(unsigned long virt, phys_addr_t phys, const struct mem_type *mtype); #else #define iotable_init(map,num) do { } while (0) diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c index f123d6e..e0fe50f 100644 --- a/arch/arm/mm/ioremap.c +++ b/arch/arm/mm/ioremap.c @@ -103,7 +103,7 @@ void __init add_static_vm_early(struct static_vm *svm) list_add_tail(&svm->list, &curr_svm->list); } -int ioremap_page(unsigned long virt, unsigned long phys, +int ioremap_page(unsigned long virt, phys_addr_t phys, const struct mem_type *mtype) { return ioremap_page_range(virt, virt + PAGE_SIZE, phys,