On Thu, Mar 02, 2017 at 01:44:36PM -0800, Laura Abbott wrote: > static struct sg_table *ion_map_dma_buf(struct dma_buf_attachment *attachment, > enum dma_data_direction direction) > { > struct dma_buf *dmabuf = attachment->dmabuf; > struct ion_buffer *buffer = dmabuf->priv; > + struct sg_table *table; > + int ret; > + > + /* > + * TODO: Need to sync wrt CPU or device completely owning? > + */ > + > + table = dup_sg_table(buffer->sg_table); > > - ion_buffer_sync_for_device(buffer, attachment->dev, direction); > - return dup_sg_table(buffer->sg_table); > + if (!dma_map_sg(attachment->dev, table->sgl, table->nents, > + direction)){ > + ret = -ENOMEM; > + goto err; > + } > + > +err: > + free_duped_table(table); > + return ERR_PTR(ret); ret isn't initialized on success. > } > regards, dan carpenter