Re: [PATCH v2 2/3] remoteproc/mediatek: skip if filesz is 0

Mathieu Poirier
2020-11-20T23:35:40Z

On Mon, Nov 16, 2020 at 04:44:12PM +0800, Tzung-Bi Shih wrote:
> The main purpose of the loop is to load the memory to the SCP SRAM.
> If filesz is 0, can go to next program header directly.
>
> We don't need to try to validate the FW binary for those filesz==0
> segments.
>
> Signed-off-by: Tzung-Bi Shih <tzungbi@google.com>
> ---
> drivers/remoteproc/mtk_scp.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/remoteproc/mtk_scp.c b/drivers/remoteproc/mtk_scp.c
> index 0abbeb62cf43..74ed675f61a6 100644
> --- a/drivers/remoteproc/mtk_scp.c
> +++ b/drivers/remoteproc/mtk_scp.c
> @@ -234,12 +234,14 @@ static int scp_elf_load_segments(struct rproc *rproc, const struct firmware *fw)
> u32 offset = phdr->p_offset;
> void __iomem *ptr;
>
> - if (phdr->p_type != PT_LOAD)
> - continue;
> -
> dev_dbg(dev, "phdr: type %d da 0x%x memsz 0x%x filesz 0x%x\n",
> phdr->p_type, da, memsz, filesz);
>
> + if (phdr->p_type != PT_LOAD)
> + continue;
> + if (!filesz)
> + continue;
> +
> if (filesz > memsz) {
> dev_err(dev, "bad phdr filesz 0x%x memsz 0x%x\n",
> filesz, memsz);
> @@ -263,9 +265,7 @@ static int scp_elf_load_segments(struct rproc *rproc, const struct firmware *fw)
> }
>
> /* put the segment where the remote processor expects it */
> - if (phdr->p_filesz)
> - scp_memcpy_aligned(ptr, elf_data + phdr->p_offset,
> - filesz);
> + scp_memcpy_aligned(ptr, elf_data + phdr->p_offset, filesz);

Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org>

> }
>
> return ret;
> --
> 2.29.2.299.gdc1121823c-goog
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel