diff options
Diffstat (limited to 'drivers/dma-buf/udmabuf.c')
| -rw-r--r-- | drivers/dma-buf/udmabuf.c | 21 | 
1 files changed, 10 insertions, 11 deletions
diff --git a/drivers/dma-buf/udmabuf.c b/drivers/dma-buf/udmabuf.c index 155050c741d9..0d03367c570a 100644 --- a/drivers/dma-buf/udmabuf.c +++ b/drivers/dma-buf/udmabuf.c @@ -51,25 +51,24 @@ static struct sg_table *map_udmabuf(struct dma_buf_attachment *at,  {  	struct udmabuf *ubuf = at->dmabuf->priv;  	struct sg_table *sg; +	int ret;  	sg = kzalloc(sizeof(*sg), GFP_KERNEL);  	if (!sg) -		goto err1; -	if (sg_alloc_table_from_pages(sg, ubuf->pages, ubuf->pagecount, -				      0, ubuf->pagecount << PAGE_SHIFT, -				      GFP_KERNEL) < 0) -		goto err2; +		return ERR_PTR(-ENOMEM); +	ret = sg_alloc_table_from_pages(sg, ubuf->pages, ubuf->pagecount, +					0, ubuf->pagecount << PAGE_SHIFT, +					GFP_KERNEL); +	if (ret < 0) +		goto err;  	if (!dma_map_sg(at->dev, sg->sgl, sg->nents, direction)) -		goto err3; - +		goto err;  	return sg; -err3: +err:  	sg_free_table(sg); -err2:  	kfree(sg); -err1: -	return ERR_PTR(-ENOMEM); +	return ERR_PTR(ret);  }  static void unmap_udmabuf(struct dma_buf_attachment *at,  |