Re: [PATCH] remoteproc: elf_loader: Update resource table name check

From: Peng Fan
Date: Fri Dec 09 2022 - 22:06:52 EST




On 12/1/2022 8:20 PM, Srinivasa Rao Mandadapu wrote:
Update resource table name check with sub string search instead of
complete string search.
In general Qualcomm binary contains, section header name
(e.g. .resource_table), amended with extra string to differentiate
with other sections.
So far Android adsp binaries are being authenticated using TZ,
hence this mismatch hasn't created any problem.
In recent developments, ADSP binary is being used in Chrome based
platforms, which doesn't have TZ path, hence resource table is
required for memory sandboxing.

Signed-off-by: Srinivasa Rao Mandadapu <quic_srivasam@xxxxxxxxxxx>
---
drivers/remoteproc/remoteproc_elf_loader.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/remoteproc/remoteproc_elf_loader.c b/drivers/remoteproc/remoteproc_elf_loader.c
index 5a412d7..0feb120 100644
--- a/drivers/remoteproc/remoteproc_elf_loader.c
+++ b/drivers/remoteproc/remoteproc_elf_loader.c
@@ -272,7 +272,7 @@ find_table(struct device *dev, const struct firmware *fw)
u64 offset = elf_shdr_get_sh_offset(class, shdr);
u32 name = elf_shdr_get_sh_name(class, shdr);
- if (strcmp(name_table + name, ".resource_table"))
+ if (!strstr(name_table + name, ".resource_table"))
continue;

How about ?
if (strcmp(name_table + name, ".resource_table")) {
if (strstr(name_table + name, ".resource_table"))
break;
continue;
}

Regards,
Peng.
table = (struct resource_table *)(elf_data + offset);