aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/platform/qcom/venus
diff options
context:
space:
mode:
authorLuca Weiss <luca.weiss@fairphone.com>2022-01-14 11:02:26 +0000
committerMauro Carvalho Chehab <mchehab@kernel.org>2022-04-24 08:31:10 +0100
commit86594f6af867b5165d2ba7b5a71fae3a5961e56c (patch)
tree56474a6cbcdba9a8ffafc7099e70df9f91d60eab /drivers/media/platform/qcom/venus
parentmedia: venus: hfi: Add error message for timeout error (diff)
downloadlinux-dev-86594f6af867b5165d2ba7b5a71fae3a5961e56c.tar.xz
linux-dev-86594f6af867b5165d2ba7b5a71fae3a5961e56c.zip
media: venus: hfi: avoid null dereference in deinit
If venus_probe fails at pm_runtime_put_sync the error handling first calls hfi_destroy and afterwards hfi_core_deinit. As hfi_destroy sets core->ops to NULL, hfi_core_deinit cannot call the core_deinit function anymore. Avoid this null pointer derefence by skipping the call when necessary. Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Diffstat (limited to 'drivers/media/platform/qcom/venus')
-rw-r--r--drivers/media/platform/qcom/venus/hfi.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/media/platform/qcom/venus/hfi.c b/drivers/media/platform/qcom/venus/hfi.c
index 4e2151fb47f0..1968f09ad177 100644
--- a/drivers/media/platform/qcom/venus/hfi.c
+++ b/drivers/media/platform/qcom/venus/hfi.c
@@ -104,6 +104,9 @@ int hfi_core_deinit(struct venus_core *core, bool blocking)
mutex_lock(&core->lock);
}
+ if (!core->ops)
+ goto unlock;
+
ret = core->ops->core_deinit(core);
if (!ret)