On 2023-12-26 10:56, Markus Elfring wrote: > From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> > 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@xxxxxxxxxxxxxxxxxxxxx> Thank you Markus for this patch. Reviewed-by: Luben Tuikov <ltuikov89@xxxxxxxxx> 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:
OpenPGP_0x4C15479431A334AF.asc
Description: OpenPGP public key
Attachment:
OpenPGP_signature.asc
Description: OpenPGP digital signature