[PATCH 1/2] of/fdt: make memblock maximum physical address arch configurable
Rob Herring
robh at kernel.org
Sun Aug 23 15:01:09 PDT 2015
On Tue, Aug 18, 2015 at 4:34 AM, Ard Biesheuvel
<ard.biesheuvel at linaro.org> wrote:
> When parsing the memory nodes to populate the memblock memory
> table, we check against high and low limits and clip any memory
> that exceeds either one of them.
>
> However, for arm64, the high limit of (phys_addr_t)~0 is not very
> meaningful, since phys_addr_t is 64 bits (i.e., no limit) but there
> may be other constraints that limit the memory ranges that we can
> support.
>
> So rename MAX_PHYS_ADDR to MAX_MEMBLOCK_ADDR (for clarity) and only
> define it if the arch does not supply a definition of its own.
>
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel at linaro.org>
Acked-by: Rob Herring <robh at kernel.org>
> ---
> drivers/of/fdt.c | 12 +++++++-----
> 1 file changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
> index 07496560e5b9..6e82bc42373b 100644
> --- a/drivers/of/fdt.c
> +++ b/drivers/of/fdt.c
> @@ -967,7 +967,9 @@ int __init early_init_dt_scan_chosen(unsigned long node, const char *uname,
> }
>
> #ifdef CONFIG_HAVE_MEMBLOCK
> -#define MAX_PHYS_ADDR ((phys_addr_t)~0)
> +#ifndef MAX_MEMBLOCK_ADDR
> +#define MAX_MEMBLOCK_ADDR ((phys_addr_t)~0)
> +#endif
>
> void __init __weak early_init_dt_add_memory_arch(u64 base, u64 size)
> {
> @@ -984,16 +986,16 @@ void __init __weak early_init_dt_add_memory_arch(u64 base, u64 size)
> }
> size &= PAGE_MASK;
>
> - if (base > MAX_PHYS_ADDR) {
> + if (base > MAX_MEMBLOCK_ADDR) {
> pr_warning("Ignoring memory block 0x%llx - 0x%llx\n",
> base, base + size);
> return;
> }
>
> - if (base + size - 1 > MAX_PHYS_ADDR) {
> + if (base + size - 1 > MAX_MEMBLOCK_ADDR) {
> pr_warning("Ignoring memory range 0x%llx - 0x%llx\n",
> - ((u64)MAX_PHYS_ADDR) + 1, base + size);
> - size = MAX_PHYS_ADDR - base + 1;
> + ((u64)MAX_MEMBLOCK_ADDR) + 1, base + size);
> + size = MAX_MEMBLOCK_ADDR - base + 1;
> }
>
> if (base + size < phys_offset) {
> --
> 1.9.1
>
More information about the linux-arm-kernel
mailing list