cocci.inria.fr archive mirror
 help / color / mirror / Atom feed
* [cocci] [PATCH 0/2] drm/sched: Adjustments for drm_sched_init()
@ 2023-12-26 15:54 Markus Elfring
  2023-12-26 15:56 ` [cocci] [PATCH 1/2] drm/sched: One function call less in drm_sched_init() after error detection Markus Elfring
  2023-12-26 15:58 ` [cocci] [PATCH 2/2] drm/sched: Return an error code only as a constant in drm_sched_init() Markus Elfring
  0 siblings, 2 replies; 3+ 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] 3+ messages in thread

* [cocci] [PATCH 1/2] drm/sched: One function call less in drm_sched_init() after error detection
  2023-12-26 15:54 [cocci] [PATCH 0/2] drm/sched: Adjustments for drm_sched_init() Markus Elfring
@ 2023-12-26 15:56 ` Markus Elfring
  2023-12-26 15:58 ` [cocci] [PATCH 2/2] drm/sched: Return an error code only as a constant in drm_sched_init() Markus Elfring
  1 sibling, 0 replies; 3+ 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] 3+ messages in thread

* [cocci] [PATCH 2/2] drm/sched: Return an error code only as a constant in drm_sched_init()
  2023-12-26 15:54 [cocci] [PATCH 0/2] drm/sched: Adjustments for drm_sched_init() Markus Elfring
  2023-12-26 15:56 ` [cocci] [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
  1 sibling, 0 replies; 3+ 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] 3+ messages in thread

end of thread, other threads:[~2023-12-26 15:58 UTC | newest]

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).