The patch titled Subject: treewide: use PHYS_ADDR_MAX to avoid type casting ULLONG_MAX has been added to the -mm tree. Its filename is treewide-use-phys_addr_max-to-avoid-type-casting-ullong_max.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/treewide-use-phys_addr_max-to-avoid-type-casting-ullong_max.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/treewide-use-phys_addr_max-to-avoid-type-casting-ullong_max.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Stefan Agner <stefan@xxxxxxxx> Subject: treewide: use PHYS_ADDR_MAX to avoid type casting ULLONG_MAX With PHYS_ADDR_MAX there is now a type safe variant for all bits set. Make use of it. Patch created using a semantic patch as follows: // <smpl> @@ typedef phys_addr_t; @@ -(phys_addr_t)ULLONG_MAX +PHYS_ADDR_MAX // </smpl> Link: http://lkml.kernel.org/r/20180419214204.19322-1-stefan@xxxxxxxx Signed-off-by: Stefan Agner <stefan@xxxxxxxx> Reviewed-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- arch/arm64/mm/init.c | 6 +++--- arch/mips/kernel/setup.c | 4 ++-- arch/powerpc/mm/mem.c | 2 +- arch/sparc/mm/init_64.c | 2 +- arch/x86/mm/init_32.c | 2 +- arch/x86/mm/init_64.c | 2 +- drivers/firmware/efi/arm-init.c | 2 +- drivers/remoteproc/qcom_q6v5_pil.c | 2 +- drivers/soc/qcom/mdt_loader.c | 4 ++-- 9 files changed, 13 insertions(+), 13 deletions(-) diff -puN arch/arm64/mm/init.c~treewide-use-phys_addr_max-to-avoid-type-casting-ullong_max arch/arm64/mm/init.c --- a/arch/arm64/mm/init.c~treewide-use-phys_addr_max-to-avoid-type-casting-ullong_max +++ a/arch/arm64/mm/init.c @@ -310,7 +310,7 @@ static void __init arm64_memory_present( } #endif -static phys_addr_t memory_limit = (phys_addr_t)ULLONG_MAX; +static phys_addr_t memory_limit = PHYS_ADDR_MAX; /* * Limit the memory size that was specified via FDT. @@ -401,7 +401,7 @@ void __init arm64_memblock_init(void) * high up in memory, add back the kernel region that must be accessible * via the linear mapping. */ - if (memory_limit != (phys_addr_t)ULLONG_MAX) { + if (memory_limit != PHYS_ADDR_MAX) { memblock_mem_limit_remove_map(memory_limit); memblock_add(__pa_symbol(_text), (u64)(_end - _text)); } @@ -664,7 +664,7 @@ __setup("keepinitrd", keepinitrd_setup); */ static int dump_mem_limit(struct notifier_block *self, unsigned long v, void *p) { - if (memory_limit != (phys_addr_t)ULLONG_MAX) { + if (memory_limit != PHYS_ADDR_MAX) { pr_emerg("Memory Limit: %llu MB\n", memory_limit >> 20); } else { pr_emerg("Memory Limit: none\n"); diff -puN arch/mips/kernel/setup.c~treewide-use-phys_addr_max-to-avoid-type-casting-ullong_max arch/mips/kernel/setup.c --- a/arch/mips/kernel/setup.c~treewide-use-phys_addr_max-to-avoid-type-casting-ullong_max +++ a/arch/mips/kernel/setup.c @@ -93,7 +93,7 @@ void __init add_memory_region(phys_addr_ * If the region reaches the top of the physical address space, adjust * the size slightly so that (start + size) doesn't overflow */ - if (start + size - 1 == (phys_addr_t)ULLONG_MAX) + if (start + size - 1 == PHYS_ADDR_MAX) --size; /* Sanity check */ @@ -376,7 +376,7 @@ static void __init bootmem_init(void) unsigned long reserved_end; unsigned long mapstart = ~0UL; unsigned long bootmap_size; - phys_addr_t ramstart = (phys_addr_t)ULLONG_MAX; + phys_addr_t ramstart = PHYS_ADDR_MAX; bool bootmap_valid = false; int i; diff -puN arch/powerpc/mm/mem.c~treewide-use-phys_addr_max-to-avoid-type-casting-ullong_max arch/powerpc/mm/mem.c --- a/arch/powerpc/mm/mem.c~treewide-use-phys_addr_max-to-avoid-type-casting-ullong_max +++ a/arch/powerpc/mm/mem.c @@ -213,7 +213,7 @@ void __init mem_topology_setup(void) /* Place all memblock_regions in the same node and merge contiguous * memblock_regions */ - memblock_set_node(0, (phys_addr_t)ULLONG_MAX, &memblock.memory, 0); + memblock_set_node(0, PHYS_ADDR_MAX, &memblock.memory, 0); } void __init initmem_init(void) diff -puN arch/sparc/mm/init_64.c~treewide-use-phys_addr_max-to-avoid-type-casting-ullong_max arch/sparc/mm/init_64.c --- a/arch/sparc/mm/init_64.c~treewide-use-phys_addr_max-to-avoid-type-casting-ullong_max +++ a/arch/sparc/mm/init_64.c @@ -1620,7 +1620,7 @@ static void __init bootmem_init_nonnuma( (top_of_ram - total_ram) >> 20); init_node_masks_nonnuma(); - memblock_set_node(0, (phys_addr_t)ULLONG_MAX, &memblock.memory, 0); + memblock_set_node(0, PHYS_ADDR_MAX, &memblock.memory, 0); allocate_node_data(0); node_set_online(0); } diff -puN arch/x86/mm/init_32.c~treewide-use-phys_addr_max-to-avoid-type-casting-ullong_max arch/x86/mm/init_32.c --- a/arch/x86/mm/init_32.c~treewide-use-phys_addr_max-to-avoid-type-casting-ullong_max +++ a/arch/x86/mm/init_32.c @@ -692,7 +692,7 @@ void __init initmem_init(void) high_memory = (void *) __va(max_low_pfn * PAGE_SIZE - 1) + 1; #endif - memblock_set_node(0, (phys_addr_t)ULLONG_MAX, &memblock.memory, 0); + memblock_set_node(0, PHYS_ADDR_MAX, &memblock.memory, 0); sparse_memory_present_with_active_regions(0); #ifdef CONFIG_FLATMEM diff -puN arch/x86/mm/init_64.c~treewide-use-phys_addr_max-to-avoid-type-casting-ullong_max arch/x86/mm/init_64.c --- a/arch/x86/mm/init_64.c~treewide-use-phys_addr_max-to-avoid-type-casting-ullong_max +++ a/arch/x86/mm/init_64.c @@ -742,7 +742,7 @@ kernel_physical_mapping_init(unsigned lo #ifndef CONFIG_NUMA void __init initmem_init(void) { - memblock_set_node(0, (phys_addr_t)ULLONG_MAX, &memblock.memory, 0); + memblock_set_node(0, PHYS_ADDR_MAX, &memblock.memory, 0); } #endif diff -puN drivers/firmware/efi/arm-init.c~treewide-use-phys_addr_max-to-avoid-type-casting-ullong_max drivers/firmware/efi/arm-init.c --- a/drivers/firmware/efi/arm-init.c~treewide-use-phys_addr_max-to-avoid-type-casting-ullong_max +++ a/drivers/firmware/efi/arm-init.c @@ -193,7 +193,7 @@ static __init void reserve_regions(void) * uses its own memory map instead. */ memblock_dump_all(); - memblock_remove(0, (phys_addr_t)ULLONG_MAX); + memblock_remove(0, PHYS_ADDR_MAX); for_each_efi_memory_desc(md) { paddr = md->phys_addr; diff -puN drivers/remoteproc/qcom_q6v5_pil.c~treewide-use-phys_addr_max-to-avoid-type-casting-ullong_max drivers/remoteproc/qcom_q6v5_pil.c --- a/drivers/remoteproc/qcom_q6v5_pil.c~treewide-use-phys_addr_max-to-avoid-type-casting-ullong_max +++ a/drivers/remoteproc/qcom_q6v5_pil.c @@ -615,7 +615,7 @@ static int q6v5_mpss_load(struct q6v5 *q struct elf32_hdr *ehdr; phys_addr_t mpss_reloc; phys_addr_t boot_addr; - phys_addr_t min_addr = (phys_addr_t)ULLONG_MAX; + phys_addr_t min_addr = PHYS_ADDR_MAX; phys_addr_t max_addr = 0; bool relocate = false; char seg_name[10]; diff -puN drivers/soc/qcom/mdt_loader.c~treewide-use-phys_addr_max-to-avoid-type-casting-ullong_max drivers/soc/qcom/mdt_loader.c --- a/drivers/soc/qcom/mdt_loader.c~treewide-use-phys_addr_max-to-avoid-type-casting-ullong_max +++ a/drivers/soc/qcom/mdt_loader.c @@ -50,7 +50,7 @@ ssize_t qcom_mdt_get_size(const struct f const struct elf32_phdr *phdrs; const struct elf32_phdr *phdr; const struct elf32_hdr *ehdr; - phys_addr_t min_addr = (phys_addr_t)ULLONG_MAX; + phys_addr_t min_addr = PHYS_ADDR_MAX; phys_addr_t max_addr = 0; int i; @@ -97,7 +97,7 @@ int qcom_mdt_load(struct device *dev, co const struct elf32_hdr *ehdr; const struct firmware *seg_fw; phys_addr_t mem_reloc; - phys_addr_t min_addr = (phys_addr_t)ULLONG_MAX; + phys_addr_t min_addr = PHYS_ADDR_MAX; phys_addr_t max_addr = 0; size_t fw_name_len; ssize_t offset; _ Patches currently in -mm which might be from stefan@xxxxxxxx are mm-memblock-introduce-phys_addr_max.patch treewide-use-phys_addr_max-to-avoid-type-casting-ullong_max.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html