lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 20 Apr 2018 09:58:15 +0200
From:   Ard Biesheuvel <ard.biesheuvel@...aro.org>
To:     Stefan Agner <stefan@...er.ch>
Cc:     Andrew Morton <akpm@...ux-foundation.org>,
        Michal Hocko <mhocko@...e.com>,
        Catalin Marinas <catalin.marinas@....com>,
        Linus Torvalds <torvalds@...ux-foundation.org>,
        Pavel Tatashin <pasha.tatashin@...cle.com>,
        Linux-MM <linux-mm@...ck.org>,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] treewide: use PHYS_ADDR_MAX to avoid type casting ULLONG_MAX

On 19 April 2018 at 23:42, Stefan Agner <stefan@...er.ch> wrote:
> With PHYS_ADDR_MAX there is now a type safe variant for all
> bits set. Make use of it.
>
> Patch created using a sematic patch as follows:
>
> // <smpl>
> @@
> typedef phys_addr_t;
> @@
> -(phys_addr_t)ULLONG_MAX
> +PHYS_ADDR_MAX
> // </smpl>
>
> Signed-off-by: Stefan Agner <stefan@...er.ch>

Acked-by: Ard Biesheuvel <ard.biesheuvel@...aro.org>

> ---
>  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 --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c
> index 9f3c47acf8ff..f48b19496141 100644
> --- a/arch/arm64/mm/init.c
> +++ b/arch/arm64/mm/init.c
> @@ -310,7 +310,7 @@ static void __init arm64_memory_present(void)
>  }
>  #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 --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
> index 563188ac6fa2..2c96c0c68116 100644
> --- a/arch/mips/kernel/setup.c
> +++ b/arch/mips/kernel/setup.c
> @@ -93,7 +93,7 @@ void __init add_memory_region(phys_addr_t start, phys_addr_t size, long type)
>          * 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 --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
> index 737f8a4632cc..7607a509c695 100644
> --- a/arch/powerpc/mm/mem.c
> +++ b/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 --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
> index 8aeb1aabe76e..f396048a0d68 100644
> --- a/arch/sparc/mm/init_64.c
> +++ b/arch/sparc/mm/init_64.c
> @@ -1620,7 +1620,7 @@ static void __init bootmem_init_nonnuma(void)
>                (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 --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
> index c893c6a3d707..979e0a02cbe1 100644
> --- a/arch/x86/mm/init_32.c
> +++ b/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 --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
> index 0a400606dea0..765a50fb6364 100644
> --- a/arch/x86/mm/init_64.c
> +++ b/arch/x86/mm/init_64.c
> @@ -742,7 +742,7 @@ kernel_physical_mapping_init(unsigned long paddr_start,
>  #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 --git a/drivers/firmware/efi/arm-init.c b/drivers/firmware/efi/arm-init.c
> index 80d1a885def5..b5214c143fee 100644
> --- a/drivers/firmware/efi/arm-init.c
> +++ b/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 --git a/drivers/remoteproc/qcom_q6v5_pil.c b/drivers/remoteproc/qcom_q6v5_pil.c
> index 8e70a627e0bb..da8edf3f85b3 100644
> --- a/drivers/remoteproc/qcom_q6v5_pil.c
> +++ b/drivers/remoteproc/qcom_q6v5_pil.c
> @@ -615,7 +615,7 @@ static int q6v5_mpss_load(struct q6v5 *qproc)
>         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 --git a/drivers/soc/qcom/mdt_loader.c b/drivers/soc/qcom/mdt_loader.c
> index 17b314d9a148..dc09d7ac905f 100644
> --- a/drivers/soc/qcom/mdt_loader.c
> +++ b/drivers/soc/qcom/mdt_loader.c
> @@ -50,7 +50,7 @@ ssize_t qcom_mdt_get_size(const struct firmware *fw)
>         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, const struct firmware *fw,
>         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;
> --
> 2.17.0
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ