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