[PATCH 2/2] remoteproc: use filesz as backup when translate memsz fail
From: Peng Fan
Date: Thu Apr 09 2020 - 04:30:58 EST
Since we no need memset if memsz is larger than filesz, we could
use filesz for the da to va translation when memsz translation fail.
Signed-off-by: Peng Fan <peng.fan@xxxxxxx>
---
drivers/remoteproc/remoteproc_elf_loader.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/drivers/remoteproc/remoteproc_elf_loader.c b/drivers/remoteproc/remoteproc_elf_loader.c
index cc50fe70d50c..74d425a4b34c 100644
--- a/drivers/remoteproc/remoteproc_elf_loader.c
+++ b/drivers/remoteproc/remoteproc_elf_loader.c
@@ -229,8 +229,16 @@ int rproc_elf_load_segments(struct rproc *rproc, const struct firmware *fw)
if (!ptr) {
dev_err(dev, "bad phdr da 0x%llx mem 0x%llx\n", da,
memsz);
- ret = -EINVAL;
- break;
+
+ ptr = rproc_da_to_va(rproc, da, filesz);
+ if (!ptr) {
+ dev_err(dev,
+ "bad phdr da 0x%llx mem 0x%llx\n",
+ da, filesz);
+ ret = -EINVAL;
+ break;
+ }
+
}
/* put the segment where the remote processor expects it */
--
2.16.4