Message ID | 20220413082133.272445-1-matthew.auld@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/ttm: fixup ttm_bo_add_move_fence | expand |
Am 13.04.22 um 10:21 schrieb Matthew Auld: > It looks like we still need to call dma_fence_put() on the man->move, > otherwise we just end up leaking it, leading to fireworks later. > > Closes: https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.freedesktop.org%2Fdrm%2Fintel%2F-%2Fissues%2F5689&data=04%7C01%7Cchristian.koenig%40amd.com%7C2c316b01285b4deacfda08da1d26a778%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637854349105267939%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=bWuQuQm6N5Lf183uo%2BsEw%2FxMWQFYVkyfYnB6SH61fto%3D&reserved=0 > Fixes: 8bb31587820a ("drm/ttm: remove bo->moving") > Cc: Christian König <christian.koenig@amd.com> > Cc: Daniel Vetter <daniel.vetter@ffwll.ch> > Signed-off-by: Matthew Auld <matthew.auld@intel.com> Ah, yes! Previously we added the fence reference to bo->moving. I was already searching for that one as well. Reviewed-by: Christian König <christian.koenig@amd.com> Going to push it to drm-misc-next in a minute. Thanks, Christian. > --- > drivers/gpu/drm/ttm/ttm_bo.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c > index 015a94f766de..b15b77e10383 100644 > --- a/drivers/gpu/drm/ttm/ttm_bo.c > +++ b/drivers/gpu/drm/ttm/ttm_bo.c > @@ -744,6 +744,8 @@ static int ttm_bo_add_move_fence(struct ttm_buffer_object *bo, > dma_fence_put(fence); > return ret; > } > + > + dma_fence_put(fence); > return 0; > } >
On Wed, Apr 13, 2022 at 09:21:33AM +0100, Matthew Auld wrote: > It looks like we still need to call dma_fence_put() on the man->move, > otherwise we just end up leaking it, leading to fireworks later. > > Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/5689 > Fixes: 8bb31587820a ("drm/ttm: remove bo->moving") > Cc: Christian König <christian.koenig@amd.com> > Cc: Daniel Vetter <daniel.vetter@ffwll.ch> > Signed-off-by: Matthew Auld <matthew.auld@intel.com> > --- > drivers/gpu/drm/ttm/ttm_bo.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c > index 015a94f766de..b15b77e10383 100644 > --- a/drivers/gpu/drm/ttm/ttm_bo.c > +++ b/drivers/gpu/drm/ttm/ttm_bo.c > @@ -744,6 +744,8 @@ static int ttm_bo_add_move_fence(struct ttm_buffer_object *bo, > dma_fence_put(fence); > return ret; > } > + > + dma_fence_put(fence); Please delete the above if () and simplify the function tail to dma_fence_put(fence); return ret; With that Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> And thanks a lot for catching this, I guess I get a prize for most useless review ever :-/ Hopefully this one here is better. -Daniel > return 0; > } > > -- > 2.34.1 >
On Wed, Apr 13, 2022 at 10:43:02AM +0200, Christian König wrote: > Am 13.04.22 um 10:21 schrieb Matthew Auld: > > It looks like we still need to call dma_fence_put() on the man->move, > > otherwise we just end up leaking it, leading to fireworks later. > > > > Closes: https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.freedesktop.org%2Fdrm%2Fintel%2F-%2Fissues%2F5689&data=04%7C01%7Cchristian.koenig%40amd.com%7C2c316b01285b4deacfda08da1d26a778%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637854349105267939%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=bWuQuQm6N5Lf183uo%2BsEw%2FxMWQFYVkyfYnB6SH61fto%3D&reserved=0 > > Fixes: 8bb31587820a ("drm/ttm: remove bo->moving") > > Cc: Christian König <christian.koenig@amd.com> > > Cc: Daniel Vetter <daniel.vetter@ffwll.ch> > > Signed-off-by: Matthew Auld <matthew.auld@intel.com> > > Ah, yes! Previously we added the fence reference to bo->moving. I was > already searching for that one as well. > > Reviewed-by: Christian König <christian.koenig@amd.com> > > Going to push it to drm-misc-next in a minute. If you haven't pushed yet, pls also check my bikeshed, the code looks a bit funny with this patch applied :-) -Daniel > > Thanks, > Christian. > > > --- > > drivers/gpu/drm/ttm/ttm_bo.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c > > index 015a94f766de..b15b77e10383 100644 > > --- a/drivers/gpu/drm/ttm/ttm_bo.c > > +++ b/drivers/gpu/drm/ttm/ttm_bo.c > > @@ -744,6 +744,8 @@ static int ttm_bo_add_move_fence(struct ttm_buffer_object *bo, > > dma_fence_put(fence); > > return ret; > > } > > + > > + dma_fence_put(fence); > > return 0; > > } >
Am 13.04.22 um 10:44 schrieb Daniel Vetter: > On Wed, Apr 13, 2022 at 09:21:33AM +0100, Matthew Auld wrote: >> It looks like we still need to call dma_fence_put() on the man->move, >> otherwise we just end up leaking it, leading to fireworks later. >> >> Closes: https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.freedesktop.org%2Fdrm%2Fintel%2F-%2Fissues%2F5689&data=04%7C01%7Cchristian.koenig%40amd.com%7C989e8d698f6d4f0b37c508da1d29dfb4%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637854363041323745%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=8lxdsjPRiu%2Ft8O4kEHQEKtrMFd7gJbbFz25mYMRk3Ig%3D&reserved=0 >> Fixes: 8bb31587820a ("drm/ttm: remove bo->moving") >> Cc: Christian König <christian.koenig@amd.com> >> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> >> Signed-off-by: Matthew Auld <matthew.auld@intel.com> >> --- >> drivers/gpu/drm/ttm/ttm_bo.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c >> index 015a94f766de..b15b77e10383 100644 >> --- a/drivers/gpu/drm/ttm/ttm_bo.c >> +++ b/drivers/gpu/drm/ttm/ttm_bo.c >> @@ -744,6 +744,8 @@ static int ttm_bo_add_move_fence(struct ttm_buffer_object *bo, >> dma_fence_put(fence); >> return ret; >> } >> + >> + dma_fence_put(fence); > Please delete the above if () and simplify the function tail to > > dma_fence_put(fence); > return ret; > > With that Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> > > And thanks a lot for catching this, I guess I get a prize for most useless > review ever :-/ Hopefully this one here is better. Well so far we one inversion of min/max, one missing put and the incorrect handling of the return code in i915. Considering how complex the patches have been I think we are still pretty good. Christian. > -Daniel > > >> return 0; >> } >> >> -- >> 2.34.1 >>
diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c index 015a94f766de..b15b77e10383 100644 --- a/drivers/gpu/drm/ttm/ttm_bo.c +++ b/drivers/gpu/drm/ttm/ttm_bo.c @@ -744,6 +744,8 @@ static int ttm_bo_add_move_fence(struct ttm_buffer_object *bo, dma_fence_put(fence); return ret; } + + dma_fence_put(fence); return 0; }
It looks like we still need to call dma_fence_put() on the man->move, otherwise we just end up leaking it, leading to fireworks later. Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/5689 Fixes: 8bb31587820a ("drm/ttm: remove bo->moving") Cc: Christian König <christian.koenig@amd.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Matthew Auld <matthew.auld@intel.com> --- drivers/gpu/drm/ttm/ttm_bo.c | 2 ++ 1 file changed, 2 insertions(+)