mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
drm/sched: One function call less in drm_sched_init() after error detection
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> Link: https://patchwork.freedesktop.org/patch/msgid/85066512-983d-480c-a44d-32405ab1b80e@web.de Reviewed-by: Luben Tuikov <ltuikov89@gmail.com> Signed-off-by: Luben Tuikov <ltuikov89@gmail.com>
This commit is contained in:
parent
5343f29b3d
commit
3bb4561806
@ -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__);
|
||||
|
Loading…
Reference in New Issue
Block a user