[PATCH] RISC-V: Fix memblock_free() usages in init_resources()

Palmer Dabbelt palmer at dabbelt.com
Sat May 29 15:45:00 PDT 2021


On Sat, 22 May 2021 10:49:51 PDT (-0700), twd2.me at gmail.com wrote:
> `memblock_free()` takes a physical address as its first argument.
> Fix the wrong usages in `init_resources()`.
>
> Fixes: ffe0e526126884cf036a6f724220f1f9b4094fd2 ("RISC-V: Improve init_resources()")
> Fixes: 797f0375dd2ef5cdc68ac23450cbae9a5c67a74e ("RISC-V: Do not allocate memblock while iterating reserved memblocks")
> Signed-off-by: Wende Tan <twd2.me at gmail.com>
> ---
>  arch/riscv/kernel/setup.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/riscv/kernel/setup.c b/arch/riscv/kernel/setup.c
> index 03901d3a8b02..9a1b7a0603b2 100644
> --- a/arch/riscv/kernel/setup.c
> +++ b/arch/riscv/kernel/setup.c
> @@ -231,13 +231,13 @@ static void __init init_resources(void)
>
>  	/* Clean-up any unused pre-allocated resources */
>  	mem_res_sz = (num_resources - res_idx + 1) * sizeof(*mem_res);
> -	memblock_free((phys_addr_t) mem_res, mem_res_sz);
> +	memblock_free(__pa(mem_res), mem_res_sz);
>  	return;
>
>   error:
>  	/* Better an empty resource tree than an inconsistent one */
>  	release_child_resources(&iomem_resource);
> -	memblock_free((phys_addr_t) mem_res, mem_res_sz);
> +	memblock_free(__pa(mem_res), mem_res_sz);
>  }

Thanks, this is on fixes.



More information about the linux-riscv mailing list