drm/i915/dmabuf: Tighten struct_mutex for unmap_dma_buf
We only need the struct_mutex to manipulate the pages_pin_count on the object, we do not need to hold our BKL when freeing the exported scatterlist. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1460113874-17366-2-git-send-email-chris@chris-wilson.co.uk
This commit is contained in:
parent
b1e429fe3b
commit
6d19245f18
@ -95,14 +95,12 @@ static void i915_gem_unmap_dma_buf(struct dma_buf_attachment *attachment,
|
|||||||
{
|
{
|
||||||
struct drm_i915_gem_object *obj = dma_buf_to_obj(attachment->dmabuf);
|
struct drm_i915_gem_object *obj = dma_buf_to_obj(attachment->dmabuf);
|
||||||
|
|
||||||
mutex_lock(&obj->base.dev->struct_mutex);
|
|
||||||
|
|
||||||
dma_unmap_sg(attachment->dev, sg->sgl, sg->nents, dir);
|
dma_unmap_sg(attachment->dev, sg->sgl, sg->nents, dir);
|
||||||
sg_free_table(sg);
|
sg_free_table(sg);
|
||||||
kfree(sg);
|
kfree(sg);
|
||||||
|
|
||||||
|
mutex_lock(&obj->base.dev->struct_mutex);
|
||||||
i915_gem_object_unpin_pages(obj);
|
i915_gem_object_unpin_pages(obj);
|
||||||
|
|
||||||
mutex_unlock(&obj->base.dev->struct_mutex);
|
mutex_unlock(&obj->base.dev->struct_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user