* [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).