All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] media: venus: hfi: Add error message for timeout error
@ 2022-01-14 11:02 Luca Weiss
  2022-01-14 11:02 ` [PATCH 2/2] media: venus: hfi: avoid null dereference in deinit Luca Weiss
  2022-03-25  7:58 ` [PATCH 1/2] media: venus: hfi: Add error message for timeout error Luca Weiss
  0 siblings, 2 replies; 3+ messages in thread
From: Luca Weiss @ 2022-01-14 11:02 UTC (permalink / raw)
  To: linux-arm-msm
  Cc: ~postmarketos/upstreaming, Luca Weiss, Stanimir Varbanov,
	Andy Gross, Bjorn Andersson, Mauro Carvalho Chehab, linux-media,
	linux-kernel

This error can appear with wrong configuration and is difficult to find
as it just returns -ETIMEDOUT with no further message.

Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
---
 drivers/media/platform/qcom/venus/hfi_venus.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/media/platform/qcom/venus/hfi_venus.c b/drivers/media/platform/qcom/venus/hfi_venus.c
index 3a75a27632fb..9a34662fea38 100644
--- a/drivers/media/platform/qcom/venus/hfi_venus.c
+++ b/drivers/media/platform/qcom/venus/hfi_venus.c
@@ -1583,8 +1583,10 @@ static int venus_suspend_3xx(struct venus_core *core)
 	 */
 	ret = readx_poll_timeout(venus_cpu_and_video_core_idle, hdev, val, val,
 				 1500, 100 * 1500);
-	if (ret)
+	if (ret) {
+		dev_err(dev, "wait for cpu and video core idle fail (%d)\n", ret);
 		return ret;
+	}
 
 	ret = venus_prepare_power_collapse(hdev, false);
 	if (ret) {
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 2/2] media: venus: hfi: avoid null dereference in deinit
  2022-01-14 11:02 [PATCH 1/2] media: venus: hfi: Add error message for timeout error Luca Weiss
@ 2022-01-14 11:02 ` Luca Weiss
  2022-03-25  7:58 ` [PATCH 1/2] media: venus: hfi: Add error message for timeout error Luca Weiss
  1 sibling, 0 replies; 3+ messages in thread
From: Luca Weiss @ 2022-01-14 11:02 UTC (permalink / raw)
  To: linux-arm-msm
  Cc: ~postmarketos/upstreaming, Luca Weiss, Stanimir Varbanov,
	Andy Gross, Bjorn Andersson, Mauro Carvalho Chehab, linux-media,
	linux-kernel

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>
---
 drivers/media/platform/qcom/venus/hfi.c | 3 +++
 1 file changed, 3 insertions(+)

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)
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/2] media: venus: hfi: Add error message for timeout error
  2022-01-14 11:02 [PATCH 1/2] media: venus: hfi: Add error message for timeout error Luca Weiss
  2022-01-14 11:02 ` [PATCH 2/2] media: venus: hfi: avoid null dereference in deinit Luca Weiss
@ 2022-03-25  7:58 ` Luca Weiss
  1 sibling, 0 replies; 3+ messages in thread
From: Luca Weiss @ 2022-03-25  7:58 UTC (permalink / raw)
  To: Luca Weiss, linux-arm-msm
  Cc: ~postmarketos/upstreaming, Stanimir Varbanov, Andy Gross,
	Bjorn Andersson, Mauro Carvalho Chehab, linux-media,
	linux-kernel

Hi everyone,

any feedback on this patch and the following one?

Regards
Luca

On Fri Jan 14, 2022 at 12:02 PM CET, Luca Weiss wrote:
> This error can appear with wrong configuration and is difficult to find
> as it just returns -ETIMEDOUT with no further message.
>
> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
> ---
>  drivers/media/platform/qcom/venus/hfi_venus.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/platform/qcom/venus/hfi_venus.c b/drivers/media/platform/qcom/venus/hfi_venus.c
> index 3a75a27632fb..9a34662fea38 100644
> --- a/drivers/media/platform/qcom/venus/hfi_venus.c
> +++ b/drivers/media/platform/qcom/venus/hfi_venus.c
> @@ -1583,8 +1583,10 @@ static int venus_suspend_3xx(struct venus_core *core)
>  	 */
>  	ret = readx_poll_timeout(venus_cpu_and_video_core_idle, hdev, val, val,
>  				 1500, 100 * 1500);
> -	if (ret)
> +	if (ret) {
> +		dev_err(dev, "wait for cpu and video core idle fail (%d)\n", ret);
>  		return ret;
> +	}
>  
>  	ret = venus_prepare_power_collapse(hdev, false);
>  	if (ret) {
> -- 
> 2.34.1


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-03-25  7:58 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-14 11:02 [PATCH 1/2] media: venus: hfi: Add error message for timeout error Luca Weiss
2022-01-14 11:02 ` [PATCH 2/2] media: venus: hfi: avoid null dereference in deinit Luca Weiss
2022-03-25  7:58 ` [PATCH 1/2] media: venus: hfi: Add error message for timeout error Luca Weiss

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.