2023-01-10 02:19:56

by Jiasheng Jiang

[permalink] [raw]
Subject: [PATCH v3] drm/msm/dsi: Add missing check for alloc_ordered_workqueue

Add check for the return value of alloc_ordered_workqueue as it may return
NULL pointer and cause NULL pointer dereference.

Signed-off-by: Jiasheng Jiang <[email protected]>
---
Changelog:

v2 -> v3:

1. Simply return -ENOMEM instead of using ret.
2. No change of the "goto fail".

v1 -> v2:

1. Change the "goto fail" into "return ret" and drop the "fail" label.
---
drivers/gpu/drm/msm/dsi/dsi_host.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c
index 89aadd3b3202..f167a45f1fbd 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_host.c
+++ b/drivers/gpu/drm/msm/dsi/dsi_host.c
@@ -1977,6 +1977,9 @@ int msm_dsi_host_init(struct msm_dsi *msm_dsi)

/* setup workqueue */
msm_host->workqueue = alloc_ordered_workqueue("dsi_drm_work", 0);
+ if (!msm_host->workqueue)
+ return -ENOMEM;
+
INIT_WORK(&msm_host->err_work, dsi_err_worker);

msm_dsi->id = msm_host->id;
--
2.25.1


2023-01-10 04:01:55

by Abhinav Kumar

[permalink] [raw]
Subject: Re: [Freedreno] [PATCH v3] drm/msm/dsi: Add missing check for alloc_ordered_workqueue



On 1/9/2023 6:16 PM, Jiasheng Jiang wrote:
> Add check for the return value of alloc_ordered_workqueue as it may return
> NULL pointer and cause NULL pointer dereference.
>
> Signed-off-by: Jiasheng Jiang <[email protected]>
Reviewed-by: Abhinav Kumar <[email protected]>
> ---
> Changelog:
>
> v2 -> v3:
>
> 1. Simply return -ENOMEM instead of using ret.
> 2. No change of the "goto fail".
>
> v1 -> v2:
>
> 1. Change the "goto fail" into "return ret" and drop the "fail" label.
> ---
> drivers/gpu/drm/msm/dsi/dsi_host.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c
> index 89aadd3b3202..f167a45f1fbd 100644
> --- a/drivers/gpu/drm/msm/dsi/dsi_host.c
> +++ b/drivers/gpu/drm/msm/dsi/dsi_host.c
> @@ -1977,6 +1977,9 @@ int msm_dsi_host_init(struct msm_dsi *msm_dsi)
>
> /* setup workqueue */
> msm_host->workqueue = alloc_ordered_workqueue("dsi_drm_work", 0);
> + if (!msm_host->workqueue)
> + return -ENOMEM;
> +
> INIT_WORK(&msm_host->err_work, dsi_err_worker);
>
> msm_dsi->id = msm_host->id;

2023-01-18 03:07:14

by Dmitry Baryshkov

[permalink] [raw]
Subject: Re: [PATCH v3] drm/msm/dsi: Add missing check for alloc_ordered_workqueue


On Tue, 10 Jan 2023 10:16:51 +0800, Jiasheng Jiang wrote:
> Add check for the return value of alloc_ordered_workqueue as it may return
> NULL pointer and cause NULL pointer dereference.
>
>

Applied, thanks!

[1/1] drm/msm/dsi: Add missing check for alloc_ordered_workqueue
https://gitlab.freedesktop.org/lumag/msm/-/commit/e5237cd6ad68

Best regards,
--
Dmitry Baryshkov <[email protected]>