On 25/07/2019 02:09, Rob Herring wrote: > If a driver does its own management of pages, the shmem helper object's > pages array could be allocated when a SG table is not. There's not > really any good reason to tie putting pages with having a SG table when > freeing the object, so just put pages if the pages array is populated. > > Cc: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx> > Cc: Maxime Ripard <maxime.ripard@xxxxxxxxxxx> > Cc: Sean Paul <sean@xxxxxxxxxx> > Cc: David Airlie <airlied@xxxxxxxx> > Cc: Daniel Vetter <daniel@xxxxxxxx> > Cc: Eric Anholt <eric@xxxxxxxxxx> > Signed-off-by: Rob Herring <robh@xxxxxxxxxx> LGTM: Reviewed-by: Steven Price <steven.price@xxxxxxx> > --- > v2: > - new patch > > drivers/gpu/drm/drm_gem_shmem_helper.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/drm_gem_shmem_helper.c b/drivers/gpu/drm/drm_gem_shmem_helper.c > index 2f64667ac805..477e4cc50f7a 100644 > --- a/drivers/gpu/drm/drm_gem_shmem_helper.c > +++ b/drivers/gpu/drm/drm_gem_shmem_helper.c > @@ -118,11 +118,11 @@ void drm_gem_shmem_free_object(struct drm_gem_object *obj) > if (shmem->sgt) { > dma_unmap_sg(obj->dev->dev, shmem->sgt->sgl, > shmem->sgt->nents, DMA_BIDIRECTIONAL); > - > - drm_gem_shmem_put_pages(shmem); > sg_free_table(shmem->sgt); > kfree(shmem->sgt); > } > + if (shmem->pages) > + drm_gem_shmem_put_pages(shmem); > } > > WARN_ON(shmem->pages_use_count); > -- > 2.20.1 > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel