linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/1] staging: ion: Fix error handling in ion_buffer_create
@ 2015-09-30  5:37 Rohit kumar
  2015-09-30 18:12 ` Laura Abbott
  0 siblings, 1 reply; 4+ messages in thread
From: Rohit kumar @ 2015-09-30  5:37 UTC (permalink / raw)
  To: gregkh, arve, riandrews, dan.carpenter, sumit.semwal, mitchelh,
	akpm, linux, dmitry.kalinkin, elfring, gioh.kim, devel,
	linux-kernel
  Cc: cpgs, pintu.k, pintu_agarwal, rohit.kr, vishnu.ps, sreenathd,
	c.rajkumar, me.rohit

This patch fixes error handling case when buffer->pages allocation
fails. Also, it removes unreachable code of checking ret variable
although it is not updated.

Signed-off-by: Rohit kumar <rohit.kr@samsung.com>
---
 drivers/staging/android/ion/ion.c |   14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/drivers/staging/android/ion/ion.c b/drivers/staging/android/ion/ion.c
index 217aa53..af59e4a 100644
--- a/drivers/staging/android/ion/ion.c
+++ b/drivers/staging/android/ion/ion.c
@@ -213,10 +213,10 @@ static struct ion_buffer *ion_buffer_create(struct ion_heap *heap,
 			"heap->ops->map_dma should return ERR_PTR on error"))
 		table = ERR_PTR(-EINVAL);
 	if (IS_ERR(table)) {
-		heap->ops->free(buffer);
-		kfree(buffer);
-		return ERR_CAST(table);
+		ret = -EINVAL;
+		goto err1;
 	}
+
 	buffer->sg_table = table;
 	if (ion_buffer_fault_user_mappings(buffer)) {
 		int num_pages = PAGE_ALIGN(buffer->size) / PAGE_SIZE;
@@ -226,7 +226,7 @@ static struct ion_buffer *ion_buffer_create(struct ion_heap *heap,
 		buffer->pages = vmalloc(sizeof(struct page *) * num_pages);
 		if (!buffer->pages) {
 			ret = -ENOMEM;
-			goto err1;
+			goto err;
 		}
 
 		for_each_sg(table->sgl, sg, table->nents, i) {
@@ -235,9 +235,6 @@ static struct ion_buffer *ion_buffer_create(struct ion_heap *heap,
 			for (j = 0; j < sg->length / PAGE_SIZE; j++)
 				buffer->pages[k++] = page++;
 		}
-
-		if (ret)
-			goto err;
 	}
 
 	buffer->dev = dev;
@@ -261,9 +258,8 @@ static struct ion_buffer *ion_buffer_create(struct ion_heap *heap,
 
 err:
 	heap->ops->unmap_dma(heap, buffer);
-	heap->ops->free(buffer);
 err1:
-	vfree(buffer->pages);
+	heap->ops->free(buffer);
 err2:
 	kfree(buffer);
 	return ERR_PTR(ret);
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/1] staging: ion: Fix error handling in ion_buffer_create
  2015-09-30  5:37 [PATCH 1/1] staging: ion: Fix error handling in ion_buffer_create Rohit kumar
@ 2015-09-30 18:12 ` Laura Abbott
  2015-10-01  5:31   ` PINTU KUMAR
  0 siblings, 1 reply; 4+ messages in thread
From: Laura Abbott @ 2015-09-30 18:12 UTC (permalink / raw)
  To: Rohit kumar, gregkh, arve, riandrews, dan.carpenter, sumit.semwal,
	mitchelh, akpm, linux, dmitry.kalinkin, elfring, gioh.kim, devel,
	linux-kernel
  Cc: pintu.k, me.rohit, pintu_agarwal, c.rajkumar, sreenathd, cpgs,
	vishnu.ps

On 09/29/2015 10:37 PM, Rohit kumar wrote:
> This patch fixes error handling case when buffer->pages allocation
> fails. Also, it removes unreachable code of checking ret variable
> although it is not updated.
>

Reviewed-by: Laura Abbott <labbott@redhat.com>
  
> Signed-off-by: Rohit kumar <rohit.kr@samsung.com>
> ---
>   drivers/staging/android/ion/ion.c |   14 +++++---------
>   1 file changed, 5 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/staging/android/ion/ion.c b/drivers/staging/android/ion/ion.c
> index 217aa53..af59e4a 100644
> --- a/drivers/staging/android/ion/ion.c
> +++ b/drivers/staging/android/ion/ion.c
> @@ -213,10 +213,10 @@ static struct ion_buffer *ion_buffer_create(struct ion_heap *heap,
>   			"heap->ops->map_dma should return ERR_PTR on error"))
>   		table = ERR_PTR(-EINVAL);
>   	if (IS_ERR(table)) {
> -		heap->ops->free(buffer);
> -		kfree(buffer);
> -		return ERR_CAST(table);
> +		ret = -EINVAL;
> +		goto err1;
>   	}
> +
>   	buffer->sg_table = table;
>   	if (ion_buffer_fault_user_mappings(buffer)) {
>   		int num_pages = PAGE_ALIGN(buffer->size) / PAGE_SIZE;
> @@ -226,7 +226,7 @@ static struct ion_buffer *ion_buffer_create(struct ion_heap *heap,
>   		buffer->pages = vmalloc(sizeof(struct page *) * num_pages);
>   		if (!buffer->pages) {
>   			ret = -ENOMEM;
> -			goto err1;
> +			goto err;
>   		}
>
>   		for_each_sg(table->sgl, sg, table->nents, i) {
> @@ -235,9 +235,6 @@ static struct ion_buffer *ion_buffer_create(struct ion_heap *heap,
>   			for (j = 0; j < sg->length / PAGE_SIZE; j++)
>   				buffer->pages[k++] = page++;
>   		}
> -
> -		if (ret)
> -			goto err;
>   	}
>
>   	buffer->dev = dev;
> @@ -261,9 +258,8 @@ static struct ion_buffer *ion_buffer_create(struct ion_heap *heap,
>
>   err:
>   	heap->ops->unmap_dma(heap, buffer);
> -	heap->ops->free(buffer);
>   err1:
> -	vfree(buffer->pages);
> +	heap->ops->free(buffer);
>   err2:
>   	kfree(buffer);
>   	return ERR_PTR(ret);
>


^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [PATCH 1/1] staging: ion: Fix error handling in ion_buffer_create
  2015-09-30 18:12 ` Laura Abbott
@ 2015-10-01  5:31   ` PINTU KUMAR
  2015-10-01  6:21     ` Gioh Kim
  0 siblings, 1 reply; 4+ messages in thread
From: PINTU KUMAR @ 2015-10-01  5:31 UTC (permalink / raw)
  To: 'Laura Abbott', 'Rohit kumar', gregkh, arve,
	riandrews, dan.carpenter, sumit.semwal, mitchelh, akpm, linux,
	dmitry.kalinkin, elfring, gioh.kim, devel, linux-kernel
  Cc: me.rohit, pintu_agarwal, c.rajkumar, sreenathd, cpgs, vishnu.ps


> -----Original Message-----
> From: Laura Abbott [mailto:labbott@redhat.com]
> Sent: Wednesday, September 30, 2015 11:42 PM
> To: Rohit kumar; gregkh@linuxfoundation.org; arve@android.com;
> riandrews@android.com; dan.carpenter@oracle.com;
> sumit.semwal@linaro.org; mitchelh@codeaurora.org; akpm@linux-
> foundation.org; linux@rasmusvillemoes.dk; dmitry.kalinkin@gmail.com;
> elfring@users.sourceforge.net; gioh.kim@lge.com; devel@driverdev.osuosl.org;
> linux-kernel@vger.kernel.org
> Cc: pintu.k@samsung.com; me.rohit@live.com; pintu_agarwal@yahoo.com;
> c.rajkumar@samsung.com; sreenathd@samsung.com; cpgs@samsung.com;
> vishnu.ps@samsung.com
> Subject: Re: [PATCH 1/1] staging: ion: Fix error handling in ion_buffer_create
> 
> On 09/29/2015 10:37 PM, Rohit kumar wrote:
> > This patch fixes error handling case when buffer->pages allocation
> > fails. Also, it removes unreachable code of checking ret variable
> > although it is not updated.
> >
> 
> Reviewed-by: Laura Abbott <labbott@redhat.com>
> 
> > Signed-off-by: Rohit kumar <rohit.kr@samsung.com>
> > ---
> >   drivers/staging/android/ion/ion.c |   14 +++++---------
> >   1 file changed, 5 insertions(+), 9 deletions(-)
> >
> > diff --git a/drivers/staging/android/ion/ion.c
> > b/drivers/staging/android/ion/ion.c
> > index 217aa53..af59e4a 100644
> > --- a/drivers/staging/android/ion/ion.c
> > +++ b/drivers/staging/android/ion/ion.c
> > @@ -213,10 +213,10 @@ static struct ion_buffer *ion_buffer_create(struct
> ion_heap *heap,
> >   			"heap->ops->map_dma should return ERR_PTR on
> error"))
> >   		table = ERR_PTR(-EINVAL);
> >   	if (IS_ERR(table)) {
> > -		heap->ops->free(buffer);
> > -		kfree(buffer);
> > -		return ERR_CAST(table);
> > +		ret = -EINVAL;
> > +		goto err1;
> >   	}
> > +
> >   	buffer->sg_table = table;
> >   	if (ion_buffer_fault_user_mappings(buffer)) {
> >   		int num_pages = PAGE_ALIGN(buffer->size) / PAGE_SIZE; @@ -
> 226,7
> > +226,7 @@ static struct ion_buffer *ion_buffer_create(struct ion_heap *heap,
> >   		buffer->pages = vmalloc(sizeof(struct page *) * num_pages);
> >   		if (!buffer->pages) {
> >   			ret = -ENOMEM;
> > -			goto err1;
> > +			goto err;
> >   		}
> >
> >   		for_each_sg(table->sgl, sg, table->nents, i) { @@ -235,9 +235,6
> @@
> > static struct ion_buffer *ion_buffer_create(struct ion_heap *heap,
> >   			for (j = 0; j < sg->length / PAGE_SIZE; j++)
> >   				buffer->pages[k++] = page++;
> >   		}
> > -
> > -		if (ret)
> > -			goto err;
> >   	}
> >
> >   	buffer->dev = dev;
> > @@ -261,9 +258,8 @@ static struct ion_buffer *ion_buffer_create(struct
> > ion_heap *heap,
> >
> >   err:
> >   	heap->ops->unmap_dma(heap, buffer);
> > -	heap->ops->free(buffer);
> >   err1:
> > -	vfree(buffer->pages);
> > +	heap->ops->free(buffer);
> >   err2:
> >   	kfree(buffer);
> >   	return ERR_PTR(ret);
> >

Suggested-by: Pintu Kumar <pintu.k@samsung.com>
Reviewed-by: Pintu Kumar <pintu.k@samsung.com>



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/1] staging: ion: Fix error handling in ion_buffer_create
  2015-10-01  5:31   ` PINTU KUMAR
@ 2015-10-01  6:21     ` Gioh Kim
  0 siblings, 0 replies; 4+ messages in thread
From: Gioh Kim @ 2015-10-01  6:21 UTC (permalink / raw)
  To: PINTU KUMAR, 'Laura Abbott', 'Rohit kumar',
	gregkh, arve, riandrews, dan.carpenter, sumit.semwal, mitchelh,
	akpm, linux, dmitry.kalinkin, elfring, devel, linux-kernel
  Cc: me.rohit, pintu_agarwal, c.rajkumar, sreenathd, cpgs, vishnu.ps



2015-10-01 오후 2:31에 PINTU KUMAR 이(가) 쓴 글:
>
>> -----Original Message-----
>> From: Laura Abbott [mailto:labbott@redhat.com]
>> Sent: Wednesday, September 30, 2015 11:42 PM
>> To: Rohit kumar; gregkh@linuxfoundation.org; arve@android.com;
>> riandrews@android.com; dan.carpenter@oracle.com;
>> sumit.semwal@linaro.org; mitchelh@codeaurora.org; akpm@linux-
>> foundation.org; linux@rasmusvillemoes.dk; dmitry.kalinkin@gmail.com;
>> elfring@users.sourceforge.net; gioh.kim@lge.com; devel@driverdev.osuosl.org;
>> linux-kernel@vger.kernel.org
>> Cc: pintu.k@samsung.com; me.rohit@live.com; pintu_agarwal@yahoo.com;
>> c.rajkumar@samsung.com; sreenathd@samsung.com; cpgs@samsung.com;
>> vishnu.ps@samsung.com
>> Subject: Re: [PATCH 1/1] staging: ion: Fix error handling in ion_buffer_create
>>
>> On 09/29/2015 10:37 PM, Rohit kumar wrote:
>>> This patch fixes error handling case when buffer->pages allocation
>>> fails. Also, it removes unreachable code of checking ret variable
>>> although it is not updated.
>>>
>>
>> Reviewed-by: Laura Abbott <labbott@redhat.com>
>>
>>> Signed-off-by: Rohit kumar <rohit.kr@samsung.com>
>>> ---
>>>    drivers/staging/android/ion/ion.c |   14 +++++---------
>>>    1 file changed, 5 insertions(+), 9 deletions(-)
>>>
>>> diff --git a/drivers/staging/android/ion/ion.c
>>> b/drivers/staging/android/ion/ion.c
>>> index 217aa53..af59e4a 100644
>>> --- a/drivers/staging/android/ion/ion.c
>>> +++ b/drivers/staging/android/ion/ion.c
>>> @@ -213,10 +213,10 @@ static struct ion_buffer *ion_buffer_create(struct
>> ion_heap *heap,
>>>    			"heap->ops->map_dma should return ERR_PTR on
>> error"))
>>>    		table = ERR_PTR(-EINVAL);
>>>    	if (IS_ERR(table)) {
>>> -		heap->ops->free(buffer);
>>> -		kfree(buffer);
>>> -		return ERR_CAST(table);
>>> +		ret = -EINVAL;
>>> +		goto err1;
>>>    	}
>>> +
>>>    	buffer->sg_table = table;
>>>    	if (ion_buffer_fault_user_mappings(buffer)) {
>>>    		int num_pages = PAGE_ALIGN(buffer->size) / PAGE_SIZE; @@ -
>> 226,7
>>> +226,7 @@ static struct ion_buffer *ion_buffer_create(struct ion_heap *heap,
>>>    		buffer->pages = vmalloc(sizeof(struct page *) * num_pages);
>>>    		if (!buffer->pages) {
>>>    			ret = -ENOMEM;
>>> -			goto err1;
>>> +			goto err;
>>>    		}
>>>
>>>    		for_each_sg(table->sgl, sg, table->nents, i) { @@ -235,9 +235,6
>> @@
>>> static struct ion_buffer *ion_buffer_create(struct ion_heap *heap,
>>>    			for (j = 0; j < sg->length / PAGE_SIZE; j++)
>>>    				buffer->pages[k++] = page++;
>>>    		}
>>> -
>>> -		if (ret)
>>> -			goto err;
>>>    	}
>>>
>>>    	buffer->dev = dev;
>>> @@ -261,9 +258,8 @@ static struct ion_buffer *ion_buffer_create(struct
>>> ion_heap *heap,
>>>
>>>    err:
>>>    	heap->ops->unmap_dma(heap, buffer);
>>> -	heap->ops->free(buffer);
>>>    err1:
>>> -	vfree(buffer->pages);
>>> +	heap->ops->free(buffer);
>>>    err2:
>>>    	kfree(buffer);
>>>    	return ERR_PTR(ret);
>>>
>
> Suggested-by: Pintu Kumar <pintu.k@samsung.com>
> Reviewed-by: Pintu Kumar <pintu.k@samsung.com>
>
>
>

It's nice!
Reviewed-by: Gioh Kim <gioh.kim@lge.com>


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-10-01  6:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-30  5:37 [PATCH 1/1] staging: ion: Fix error handling in ion_buffer_create Rohit kumar
2015-09-30 18:12 ` Laura Abbott
2015-10-01  5:31   ` PINTU KUMAR
2015-10-01  6:21     ` Gioh Kim

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).