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