On Friday, 2017-03-03 14:04:26 +0300, Dan Carpenter wrote: > 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; > > + } Actually, I think `ret` should be left uninitialised on success, what's really missing is this return before the `err:` label: + return table; > > + > > +err: > > + free_duped_table(table); > > + return ERR_PTR(ret); > > ret isn't initialized on success. > > > } > > > > regards, > dan carpenter _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel