Message ID | 20170823055236.25451-1-christophe.jaillet@wanadoo.fr (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Aug 23, 2017 at 4:39 AM, Christian König <christian.koenig@amd.com> wrote: > Am 23.08.2017 um 07:52 schrieb Christophe JAILLET: >> >> Check memory allocation failure and return -ENOMEM in such a case. >> >> 'num_post_dep_syncobjs' still has to be set to 0 before the test in order >> to have it initialized if 'amdgpu_cs_parser_fini()' is called to free >> resources. >> >> The calling graph would be, in such a case! >> failure in amdgpu_cs_process_syncobj_out_dep() >> ---> error code returned by amdgpu_cs_dependencies() >> --> amdgpu_cs_parser_fini() is called >> >> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> > > > Reviewed-by: Christian König <christian.koenig@amd.com> Applied. thanks! Alex > >> --- >> drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c >> b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c >> index 15d4a28d73bb..baa90df90aea 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c >> @@ -1079,6 +1079,9 @@ static int amdgpu_cs_process_syncobj_out_dep(struct >> amdgpu_cs_parser *p, >> GFP_KERNEL); >> p->num_post_dep_syncobjs = 0; >> + if (!p->post_dep_syncobjs) >> + return -ENOMEM; >> + >> for (i = 0; i < num_deps; ++i) { >> p->post_dep_syncobjs[i] = drm_syncobj_find(p->filp, >> deps[i].handle); >> if (!p->post_dep_syncobjs[i]) > > > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c index 15d4a28d73bb..baa90df90aea 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c @@ -1079,6 +1079,9 @@ static int amdgpu_cs_process_syncobj_out_dep(struct amdgpu_cs_parser *p, GFP_KERNEL); p->num_post_dep_syncobjs = 0; + if (!p->post_dep_syncobjs) + return -ENOMEM; + for (i = 0; i < num_deps; ++i) { p->post_dep_syncobjs[i] = drm_syncobj_find(p->filp, deps[i].handle); if (!p->post_dep_syncobjs[i])
Check memory allocation failure and return -ENOMEM in such a case. 'num_post_dep_syncobjs' still has to be set to 0 before the test in order to have it initialized if 'amdgpu_cs_parser_fini()' is called to free resources. The calling graph would be, in such a case! failure in amdgpu_cs_process_syncobj_out_dep() ---> error code returned by amdgpu_cs_dependencies() --> amdgpu_cs_parser_fini() is called Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> --- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 3 +++ 1 file changed, 3 insertions(+)