Re: [RFC PATCH 04/12] staging: android: ion: Call dma_map_sg for syncing and mapping

From: Eric Engestrom
Date: Fri Mar 03 2017 - 06:58:51 EST


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