On pe, 2016-10-07 at 10:46 +0100, Chris Wilson wrote: > @@ -72,21 +68,18 @@ static struct sg_table *i915_gem_map_dma_buf(struct dma_buf_attachment *attachme > } > > if (!dma_map_sg(attachment->dev, st->sgl, st->nents, dir)) { > - ret =-ENOMEM; > + ret = -ENOMEM; > goto err_free_sg; > } > > - mutex_unlock(&obj->base.dev->struct_mutex); > return st; > > err_free_sg: > sg_free_table(st); > err_free: > kfree(st); > -err_unpin: > +err_put_pages: > i915_gem_object_unpin_pages(obj); I do not quite follow the logic leading to rename in here. > @@ -177,15 +155,22 @@ static int i915_gem_begin_cpu_access(struct dma_buf *dma_buf, enum dma_data_dire > { > struct drm_i915_gem_object *obj = dma_buf_to_obj(dma_buf); > struct drm_device *dev = obj->base.dev; > - int ret; > bool write = (direction == DMA_BIDIRECTIONAL || direction == DMA_TO_DEVICE); > + int ret; > > - ret = i915_mutex_lock_interruptible(dev); > + ret = i915_gem_object_pin_pages(obj); > if (ret) > return ret; > > + ret = i915_mutex_lock_interruptible(dev); > + if (ret) > + goto err; > + > ret = i915_gem_object_set_to_cpu_domain(obj, write); > mutex_unlock(&dev->struct_mutex); > + > +err: combined path, 'out:' > @@ -195,13 +180,19 @@ static int i915_gem_end_cpu_access(struct dma_buf *dma_buf, enum dma_data_direct > struct drm_device *dev = obj->base.dev; > int ret; > > - ret = i915_mutex_lock_interruptible(dev); > + ret = i915_gem_object_pin_pages(obj); > if (ret) > return ret; > > + ret = i915_mutex_lock_interruptible(dev); > + if (ret) > + goto err; > + > ret = i915_gem_object_set_to_gtt_domain(obj, false); > mutex_unlock(&dev->struct_mutex); > > +err: Ditto. With above fixed; Reviewed-by: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx> Regards, Joonas -- Joonas Lahtinen Open Source Technology Center Intel Corporation _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx