[PATCH] drm/ttm: delay freeing of old node during move_memcpy until after iounmap
Ben Skeggs
skeggsb at gmail.com
Thu Dec 9 03:15:07 PST 2010
On Thu, 2010-12-09 at 08:21 +0100, Thomas Hellstrom wrote:
> On 12/09/2010 03:26 AM, skeggsb at gmail.com wrote:
> > From: Ben Skeggs<bskeggs at redhat.com>
> >
> > Drivers using their own implementation of io_mem_reserve/io_mem_free are
> > likely to store the tracking information for the map in mem.mm_node, so
> > it can't be freed while still mapped.
> >
> > Signed-off-by: Ben Skeggs<bskeggs at redhat.com>
> >
>
> Looks good.
Cool, thanks! Adding dri-devel to CC as I apparently missed it
before :)
Ben.
>
>
> Reviewed-by: Thomas Hellstrom <thellstrom at vmware.com>
>
>
> > ---
> > drivers/gpu/drm/ttm/ttm_bo_util.c | 2 +-
> > 1 files changed, 1 insertions(+), 1 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c
> > index a89839f..77dbf40 100644
> > --- a/drivers/gpu/drm/ttm/ttm_bo_util.c
> > +++ b/drivers/gpu/drm/ttm/ttm_bo_util.c
> > @@ -370,7 +370,6 @@ int ttm_bo_move_memcpy(struct ttm_buffer_object *bo,
> > }
> > mb();
> > out2:
> > - ttm_bo_free_old_node(bo);
> > old_copy = *old_mem;
> > *old_mem = *new_mem;
> > new_mem->mm_node = NULL;
> > @@ -385,6 +384,7 @@ out1:
> > ttm_mem_reg_iounmap(bdev, old_mem, new_iomap);
> > out:
> > ttm_mem_reg_iounmap(bdev,&old_copy, old_iomap);
> > + ttm_bo_mem_put(bo,&old_copy);
> > return ret;
> > }
> > EXPORT_SYMBOL(ttm_bo_move_memcpy);
> >
>
More information about the dri-devel
mailing list