public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] drm/sched: Adjustments for drm_sched_init()
@ 2023-12-26 15:54 Markus Elfring
  2023-12-26 15:56 ` [PATCH 1/2] drm/sched: One function call less in drm_sched_init() after error detection Markus Elfring
  2023-12-26 15:58 ` [PATCH 2/2] drm/sched: Return an error code only as a constant in drm_sched_init() Markus Elfring
  0 siblings, 2 replies; 5+ messages in thread
From: Markus Elfring @ 2023-12-26 15:54 UTC (permalink / raw)
  To: dri-devel, kernel-janitors, Daniel Vetter, David Airlie,
	Luben Tuikov, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann
  Cc: LKML, cocci

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 26 Dec 2023 16:48:48 +0100

A few update suggestions were taken into account
from static source code analysis.

Markus Elfring (2):
  One function call less after error detection
  Return an error code only as a constant

 drivers/gpu/drm/scheduler/sched_main.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

--
2.43.0


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

* [PATCH 1/2] drm/sched: One function call less in drm_sched_init() after error detection
  2023-12-26 15:54 [PATCH 0/2] drm/sched: Adjustments for drm_sched_init() Markus Elfring
@ 2023-12-26 15:56 ` Markus Elfring
  2024-01-08  4:16   ` Luben Tuikov
  2023-12-26 15:58 ` [PATCH 2/2] drm/sched: Return an error code only as a constant in drm_sched_init() Markus Elfring
  1 sibling, 1 reply; 5+ messages in thread
From: Markus Elfring @ 2023-12-26 15:56 UTC (permalink / raw)
  To: dri-devel, kernel-janitors, Daniel Vetter, David Airlie,
	Luben Tuikov, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann
  Cc: LKML, cocci

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 26 Dec 2023 16:30:25 +0100

The kfree() function was called in one case by the
drm_sched_init() function during error handling
even if the passed data structure member contained a null pointer.
This issue was detected by using the Coccinelle software.

Thus adjust a jump target.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 drivers/gpu/drm/scheduler/sched_main.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
index 550492a7a031..b99d4e9ff109 100644
--- a/drivers/gpu/drm/scheduler/sched_main.c
+++ b/drivers/gpu/drm/scheduler/sched_main.c
@@ -1289,7 +1289,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
 	sched->sched_rq = kmalloc_array(num_rqs, sizeof(*sched->sched_rq),
 					GFP_KERNEL | __GFP_ZERO);
 	if (!sched->sched_rq)
-		goto Out_free;
+		goto Out_check_own;
 	sched->num_rqs = num_rqs;
 	for (i = DRM_SCHED_PRIORITY_KERNEL; i < sched->num_rqs; i++) {
 		sched->sched_rq[i] = kzalloc(sizeof(*sched->sched_rq[i]), GFP_KERNEL);
@@ -1314,9 +1314,10 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
 Out_unroll:
 	for (--i ; i >= DRM_SCHED_PRIORITY_KERNEL; i--)
 		kfree(sched->sched_rq[i]);
-Out_free:
+
 	kfree(sched->sched_rq);
 	sched->sched_rq = NULL;
+Out_check_own:
 	if (sched->own_submit_wq)
 		destroy_workqueue(sched->submit_wq);
 	drm_err(sched, "%s: Failed to setup GPU scheduler--out of memory\n", __func__);
--
2.43.0


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

* [PATCH 2/2] drm/sched: Return an error code only as a constant in drm_sched_init()
  2023-12-26 15:54 [PATCH 0/2] drm/sched: Adjustments for drm_sched_init() Markus Elfring
  2023-12-26 15:56 ` [PATCH 1/2] drm/sched: One function call less in drm_sched_init() after error detection Markus Elfring
@ 2023-12-26 15:58 ` Markus Elfring
  2024-01-08  4:17   ` Luben Tuikov
  1 sibling, 1 reply; 5+ messages in thread
From: Markus Elfring @ 2023-12-26 15:58 UTC (permalink / raw)
  To: dri-devel, kernel-janitors, Daniel Vetter, David Airlie,
	Luben Tuikov, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann
  Cc: LKML, cocci

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 26 Dec 2023 16:37:37 +0100

Return an error code without storing it in an intermediate variable.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 drivers/gpu/drm/scheduler/sched_main.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
index b99d4e9ff109..1abbcdf38430 100644
--- a/drivers/gpu/drm/scheduler/sched_main.c
+++ b/drivers/gpu/drm/scheduler/sched_main.c
@@ -1249,7 +1249,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
 		   long timeout, struct workqueue_struct *timeout_wq,
 		   atomic_t *score, const char *name, struct device *dev)
 {
-	int i, ret;
+	int i;

 	sched->ops = ops;
 	sched->credit_limit = credit_limit;
@@ -1285,7 +1285,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,

 		sched->own_submit_wq = true;
 	}
-	ret = -ENOMEM;
+
 	sched->sched_rq = kmalloc_array(num_rqs, sizeof(*sched->sched_rq),
 					GFP_KERNEL | __GFP_ZERO);
 	if (!sched->sched_rq)
@@ -1321,7 +1321,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
 	if (sched->own_submit_wq)
 		destroy_workqueue(sched->submit_wq);
 	drm_err(sched, "%s: Failed to setup GPU scheduler--out of memory\n", __func__);
-	return ret;
+	return -ENOMEM;
 }
 EXPORT_SYMBOL(drm_sched_init);

--
2.43.0


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

* Re: [PATCH 1/2] drm/sched: One function call less in drm_sched_init() after error detection
  2023-12-26 15:56 ` [PATCH 1/2] drm/sched: One function call less in drm_sched_init() after error detection Markus Elfring
@ 2024-01-08  4:16   ` Luben Tuikov
  0 siblings, 0 replies; 5+ messages in thread
From: Luben Tuikov @ 2024-01-08  4:16 UTC (permalink / raw)
  To: Markus Elfring, dri-devel, kernel-janitors, Daniel Vetter,
	David Airlie, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann
  Cc: LKML, cocci


[-- Attachment #1.1.1: Type: text/plain, Size: 1863 bytes --]

On 2023-12-26 10:56, Markus Elfring wrote:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Tue, 26 Dec 2023 16:30:25 +0100
> 
> The kfree() function was called in one case by the
> drm_sched_init() function during error handling
> even if the passed data structure member contained a null pointer.
> This issue was detected by using the Coccinelle software.
> 
> Thus adjust a jump target.
> 
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>

Thank you Markus for this patch.

Reviewed-by: Luben Tuikov <ltuikov89@gmail.com>

Pushed to drm-misc-next.
-- 
Regards,
Luben

> ---
>  drivers/gpu/drm/scheduler/sched_main.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
> index 550492a7a031..b99d4e9ff109 100644
> --- a/drivers/gpu/drm/scheduler/sched_main.c
> +++ b/drivers/gpu/drm/scheduler/sched_main.c
> @@ -1289,7 +1289,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
>  	sched->sched_rq = kmalloc_array(num_rqs, sizeof(*sched->sched_rq),
>  					GFP_KERNEL | __GFP_ZERO);
>  	if (!sched->sched_rq)
> -		goto Out_free;
> +		goto Out_check_own;
>  	sched->num_rqs = num_rqs;
>  	for (i = DRM_SCHED_PRIORITY_KERNEL; i < sched->num_rqs; i++) {
>  		sched->sched_rq[i] = kzalloc(sizeof(*sched->sched_rq[i]), GFP_KERNEL);
> @@ -1314,9 +1314,10 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
>  Out_unroll:
>  	for (--i ; i >= DRM_SCHED_PRIORITY_KERNEL; i--)
>  		kfree(sched->sched_rq[i]);
> -Out_free:
> +
>  	kfree(sched->sched_rq);
>  	sched->sched_rq = NULL;
> +Out_check_own:
>  	if (sched->own_submit_wq)
>  		destroy_workqueue(sched->submit_wq);
>  	drm_err(sched, "%s: Failed to setup GPU scheduler--out of memory\n", __func__);
> --
> 2.43.0
> 

[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 677 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

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

* Re: [PATCH 2/2] drm/sched: Return an error code only as a constant in drm_sched_init()
  2023-12-26 15:58 ` [PATCH 2/2] drm/sched: Return an error code only as a constant in drm_sched_init() Markus Elfring
@ 2024-01-08  4:17   ` Luben Tuikov
  0 siblings, 0 replies; 5+ messages in thread
From: Luben Tuikov @ 2024-01-08  4:17 UTC (permalink / raw)
  To: Markus Elfring, dri-devel, kernel-janitors, Daniel Vetter,
	David Airlie, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann
  Cc: LKML, cocci


[-- Attachment #1.1.1: Type: text/plain, Size: 1702 bytes --]

On 2023-12-26 10:58, Markus Elfring wrote:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Tue, 26 Dec 2023 16:37:37 +0100
> 
> Return an error code without storing it in an intermediate variable.
> 
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>

Thank you Markus for this patch.

Reviewed-by: Luben Tuikov <ltuikov89@gmail.com>

Pushed to drm-misc-next.
-- 
Regards,
Luben

> ---
>  drivers/gpu/drm/scheduler/sched_main.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
> index b99d4e9ff109..1abbcdf38430 100644
> --- a/drivers/gpu/drm/scheduler/sched_main.c
> +++ b/drivers/gpu/drm/scheduler/sched_main.c
> @@ -1249,7 +1249,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
>  		   long timeout, struct workqueue_struct *timeout_wq,
>  		   atomic_t *score, const char *name, struct device *dev)
>  {
> -	int i, ret;
> +	int i;
> 
>  	sched->ops = ops;
>  	sched->credit_limit = credit_limit;
> @@ -1285,7 +1285,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
> 
>  		sched->own_submit_wq = true;
>  	}
> -	ret = -ENOMEM;
> +
>  	sched->sched_rq = kmalloc_array(num_rqs, sizeof(*sched->sched_rq),
>  					GFP_KERNEL | __GFP_ZERO);
>  	if (!sched->sched_rq)
> @@ -1321,7 +1321,7 @@ int drm_sched_init(struct drm_gpu_scheduler *sched,
>  	if (sched->own_submit_wq)
>  		destroy_workqueue(sched->submit_wq);
>  	drm_err(sched, "%s: Failed to setup GPU scheduler--out of memory\n", __func__);
> -	return ret;
> +	return -ENOMEM;
>  }
>  EXPORT_SYMBOL(drm_sched_init);
> 
> --
> 2.43.0
> 

[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 677 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

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

end of thread, other threads:[~2024-01-08  4:17 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-26 15:54 [PATCH 0/2] drm/sched: Adjustments for drm_sched_init() Markus Elfring
2023-12-26 15:56 ` [PATCH 1/2] drm/sched: One function call less in drm_sched_init() after error detection Markus Elfring
2024-01-08  4:16   ` Luben Tuikov
2023-12-26 15:58 ` [PATCH 2/2] drm/sched: Return an error code only as a constant in drm_sched_init() Markus Elfring
2024-01-08  4:17   ` Luben Tuikov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox