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@xxxxxxxxxx> > --- > 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@xxxxxxxxxx> > } > > return ret; > -- > 2.29.2.299.gdc1121823c-goog > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@xxxxxxxxxxxxxxxxxxx > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel