From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Skeggs Subject: Re: [PATCH] drm/ttm: delay freeing of old node during move_memcpy until after iounmap Date: Thu, 09 Dec 2010 21:15:07 +1000 Message-ID: <1291893317.12581.23.camel@nisroch> References: <1291861612-12892-1-git-send-email-skeggsb@gmail.com> <4D00835C.3040905@shipmail.org> Reply-To: skeggsb@gmail.com Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-vw0-f49.google.com (mail-vw0-f49.google.com [209.85.212.49]) by gabe.freedesktop.org (Postfix) with ESMTP id F21F89E79A for ; Thu, 9 Dec 2010 03:15:38 -0800 (PST) Received: by vws5 with SMTP id 5so1422267vws.36 for ; Thu, 09 Dec 2010 03:15:38 -0800 (PST) In-Reply-To: <4D00835C.3040905@shipmail.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: Thomas Hellstrom Cc: airlied@redhat.com, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org On Thu, 2010-12-09 at 08:21 +0100, Thomas Hellstrom wrote: > On 12/09/2010 03:26 AM, skeggsb@gmail.com wrote: > > From: Ben Skeggs > > > > 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 > > > > Looks good. Cool, thanks! Adding dri-devel to CC as I apparently missed it before :) Ben. > > > Reviewed-by: Thomas Hellstrom > > > > --- > > 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); > > >