diff --git a/drivers/staging/android/ion/ion_dma_buf.c b/drivers/staging/android/ion/ion_dma_buf.c index 6b77a2fbb67a..9cb38d519c10 100644 --- a/drivers/staging/android/ion/ion_dma_buf.c +++ b/drivers/staging/android/ion/ion_dma_buf.c @@ -57,6 +57,10 @@ static int ion_dma_buf_attach(struct dma_buf *dmabuf, struct ion_dma_buf_attachment *a; struct sg_table *table; struct ion_buffer *buffer = dmabuf->priv; + struct ion_heap *heap = buffer->heap; + + if (heap->buf_ops.attach) + return heap->buf_ops.attach(dmabuf, attachment); a = kzalloc(sizeof(*a), GFP_KERNEL); if (!a) @@ -86,6 +90,10 @@ static void ion_dma_buf_detatch(struct dma_buf *dmabuf, { struct ion_dma_buf_attachment *a = attachment->priv; struct ion_buffer *buffer = dmabuf->priv; + struct ion_heap *heap = buffer->heap; + + if (heap->buf_ops.detach) + return heap->buf_ops.detach(dmabuf, attachment); mutex_lock(&buffer->lock); list_del(&a->list);