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

From: Srinivasa Rao Mandadapu
Date: Thu Dec 08 2022 - 08:42:32 EST



On 12/7/2022 7:25 AM, Stephen Boyd wrote:
Thanks for Your Time Stephen!!!
Quoting Srinivasa Rao Mandadapu (2022-12-01 04:20:48)
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.

Does this need a Fixes tag?
I don't think so. I feel It's kind of enhancement.

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"))
Was the strcmp not working before because the 'name_table' has something
else in it? It really looks like your elf file is malformed.

Actually, DSP binary is prepared by combining different elfs. So Section header names are appended with

something else to distinguish same section name of different elfs, by using some Qualcomm specific QURT scripts.
Hence final binary contains resource_table name appended with module specific name.

So this patch is required to handle such modified name.