lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 27 Sep 2022 19:26:40 +0530 From: Srinivasa Rao Mandadapu <quic_srivasam@...cinc.com> To: <linux-remoteproc@...r.kernel.org>, <agross@...nel.org>, <andersson@...nel.org>, <lgirdwood@...il.com>, <broonie@...nel.org>, <robh+dt@...nel.org>, <quic_plai@...cinc.com>, <bgoswami@...cinc.com>, <perex@...ex.cz>, <tiwai@...e.com>, <srinivas.kandagatla@...aro.org>, <quic_rohkumar@...cinc.com>, <linux-arm-msm@...r.kernel.org>, <linux-kernel@...r.kernel.org>, <swboyd@...omium.org>, <judyhsiao@...omium.org>, <devicetree@...r.kernel.org>, <krzysztof.kozlowski@...aro.org> CC: Srinivasa Rao Mandadapu <quic_srivasam@...cinc.com> Subject: [PATCH v9 4/7] remoteproc: qcom: Update rproc parse firmware callback Change parse_fw callback in rproc ops from qcom_register_dump_segments to local function such that, it can perform coredump segments registration and it can parse section header in memory sandboxing required platforms. Signed-off-by: Srinivasa Rao Mandadapu <quic_srivasam@...cinc.com> --- Changes since V6: -- Update parse firmware callback. drivers/remoteproc/qcom_q6v5_adsp.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/drivers/remoteproc/qcom_q6v5_adsp.c b/drivers/remoteproc/qcom_q6v5_adsp.c index 14a3864..b8cbbf7 100644 --- a/drivers/remoteproc/qcom_q6v5_adsp.c +++ b/drivers/remoteproc/qcom_q6v5_adsp.c @@ -439,6 +439,27 @@ static void *adsp_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iom return adsp->mem_region + offset; } +static int adsp_parse_firmware(struct rproc *rproc, const struct firmware *fw) +{ + struct qcom_adsp *adsp = rproc->priv; + int ret; + + ret = qcom_register_dump_segments(rproc, fw); + if (ret) { + dev_err(&rproc->dev, "Error in registering dump segments\n"); + return ret; + } + + if (adsp->has_iommu) { + ret = rproc_elf_load_rsc_table(rproc, fw); + if (ret) { + dev_err(&rproc->dev, "Error in loading resource table\n"); + return ret; + } + } + return 0; +} + static unsigned long adsp_panic(struct rproc *rproc) { struct qcom_adsp *adsp = rproc->priv; @@ -450,7 +471,7 @@ static const struct rproc_ops adsp_ops = { .start = adsp_start, .stop = adsp_stop, .da_to_va = adsp_da_to_va, - .parse_fw = qcom_register_dump_segments, + .parse_fw = adsp_parse_firmware, .load = adsp_load, .panic = adsp_panic, }; -- 2.7.4
Powered by blists - more mailing lists