Commit fc1490c6 authored by Daniele Alessandrelli's avatar Daniele Alessandrelli Committed by Treehugger Robot
Browse files

UPSTREAM: remoteproc: core: Fix rproc->firmware free in rproc_set_firmware()



rproc_alloc_firmware() (called by rproc_alloc()) can allocate
rproc->firmware using kstrdup_const() and therefore should be freed
using kfree_const(); however, rproc_set_firmware() frees it using the
simple kfree(). This causes a kernel oops if a constant string is passed
to rproc_alloc() and rproc_set_firmware() is subsequently called.

Fix the above issue by using kfree_const() to free rproc->firmware in
rproc_set_firmware().

Reviewed-by: default avatarMathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: default avatarDaniele Alessandrelli <daniele.alessandrelli@intel.com>
Link: https://lore.kernel.org/r/20210118165904.719999-1-daniele.alessandrelli@linux.intel.com


Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>

[juhyung: A kernel panic was observed with downstream Qualcomm's
qcom_spss and spss_utils modules on production phones.
drivers/remoteproc/qcom_spss.c's qcom_spss_set_fw_name() have upstream's
rproc_set_firmware() logic duplicated and hence needs its own fix (change
to call rproc_set_firmware() directly) to fully fix the kernel panic,
but remoteproc_core needs to be fixed too.]

Change-Id: I7d993e38d4babc30562dd47c366cba9fda388130
(cherry picked from commit 43d3f2c7)
Signed-off-by: default avatarJuhyung Park <qkrwngud825@gmail.com>
parent 869cae6f
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment