[v2] drivers/media/pci/cx25821/cx25821-video-upstream-ch2.c: fix error return code

Message ID 1347112918-7738-1-git-send-email-peter.senna@gmail.com (mailing list archive)
State Accepted, archived
Headers

Commit Message

Peter Senna Tschudin Sept. 8, 2012, 2:01 p.m. UTC
  From: Peter Senna Tschudin <peter.senna@gmail.com>

Convert a nonnegative error return code to a negative one, as returned
elsewhere in the function.

A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
(
if@p1 (\(ret < 0\|ret != 0\))
 { ... return ret; }
|
ret@p1 = 0
)
... when != ret = e1
    when != &ret
*if(...)
{
  ... when != ret = e2
      when forall
 return ret;
}

// </smpl>

Signed-off-by: Peter Senna Tschudin <peter.senna@gmail.com>

---
walter harms <wharms@bfs.de>, thanks for the tip. Please take a look carefully to check if I got your suggestion correctly. It was tested by compilation only.

 drivers/media/pci/cx25821/cx25821-video-upstream-ch2.c |   30 ++++++-----------
 1 file changed, 12 insertions(+), 18 deletions(-)


--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  

Comments

Ezequiel Garcia Sept. 8, 2012, 6:58 p.m. UTC | #1
Peter,

On Sat, Sep 8, 2012 at 11:01 AM, Peter Senna Tschudin
<peter.senna@gmail.com> wrote:
> From: Peter Senna Tschudin <peter.senna@gmail.com>
>
> Convert a nonnegative error return code to a negative one, as returned
> elsewhere in the function.
>
> A simplified version of the semantic match that finds this problem is as
> follows: (http://coccinelle.lip6.fr/)
>
> // <smpl>
> (
> if@p1 (\(ret < 0\|ret != 0\))
>  { ... return ret; }
> |
> ret@p1 = 0
> )
> ... when != ret = e1
>     when != &ret
> *if(...)
> {
>   ... when != ret = e2
>       when forall
>  return ret;
> }
>
> // </smpl>
>
> Signed-off-by: Peter Senna Tschudin <peter.senna@gmail.com>
>
> ---
> walter harms <wharms@bfs.de>, thanks for the tip. Please take a look carefully to check if I got your suggestion correctly. It was tested by compilation only.
>
>  drivers/media/pci/cx25821/cx25821-video-upstream-ch2.c |   30 ++++++-----------
>  1 file changed, 12 insertions(+), 18 deletions(-)
>
> diff --git a/drivers/media/pci/cx25821/cx25821-video-upstream-ch2.c b/drivers/media/pci/cx25821/cx25821-video-upstream-ch2.c
> index c8c94fb..b663dac 100644
> --- a/drivers/media/pci/cx25821/cx25821-video-upstream-ch2.c
> +++ b/drivers/media/pci/cx25821/cx25821-video-upstream-ch2.c
> @@ -704,11 +704,9 @@ int cx25821_vidupstream_init_ch2(struct cx25821_dev *dev, int channel_select,
>  {
>         struct sram_channel *sram_ch;
>         u32 tmp;
> -       int retval = 0;
>         int err = 0;
>         int data_frame_size = 0;
>         int risc_buffer_size = 0;
> -       int str_length = 0;
>
>         if (dev->_is_running_ch2) {
>                 pr_info("Video Channel is still running so return!\n");
> @@ -744,20 +742,16 @@ int cx25821_vidupstream_init_ch2(struct cx25821_dev *dev, int channel_select,
>         risc_buffer_size = dev->_isNTSC_ch2 ?
>                 NTSC_RISC_BUF_SIZE : PAL_RISC_BUF_SIZE;
>
> -       if (dev->input_filename_ch2) {
> -               str_length = strlen(dev->input_filename_ch2);
> -               dev->_filename_ch2 = kmemdup(dev->input_filename_ch2,
> -                                            str_length + 1, GFP_KERNEL);
> -
> -               if (!dev->_filename_ch2)
> -                       goto error;
> -       } else {
> -               str_length = strlen(dev->_defaultname_ch2);
> -               dev->_filename_ch2 = kmemdup(dev->_defaultname_ch2,
> -                                            str_length + 1, GFP_KERNEL);
> +       if (dev->input_filename_ch2)
> +               dev->_filename_ch2 = kstrdup(dev->input_filename_ch2,
> +                                                               GFP_KERNEL);
> +       else
> +               dev->_filename_ch2 = kstrdup(dev->_defaultname_ch2,
> +                                                               GFP_KERNEL);
>

You're replacing kmemdup for kstrdup, which is great,
but that's not anywhere in the commit message.

I'm not sure if you should re-send, but you should definitely
try to have better commit messages in the future!

Not to mention you're doing two things in one patch, and that makes
very difficult to bisect.

Thanks (and sorry for the nitpick)...
Ezequiel.
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  
walter harms Sept. 9, 2012, 6:52 p.m. UTC | #2
looks ok to me,
note: i do not have the hardware
Reviewed-by: walter harms <wharms@bfs.de>

Am 08.09.2012 16:01, schrieb Peter Senna Tschudin:
> From: Peter Senna Tschudin <peter.senna@gmail.com>
> 
> Convert a nonnegative error return code to a negative one, as returned
> elsewhere in the function.
> 
> A simplified version of the semantic match that finds this problem is as
> follows: (http://coccinelle.lip6.fr/)
> 
> // <smpl>
> (
> if@p1 (\(ret < 0\|ret != 0\))
>  { ... return ret; }
> |
> ret@p1 = 0
> )
> ... when != ret = e1
>     when != &ret
> *if(...)
> {
>   ... when != ret = e2
>       when forall
>  return ret;
> }
> 
> // </smpl>
> 
> Signed-off-by: Peter Senna Tschudin <peter.senna@gmail.com>
> 
> ---
> walter harms <wharms@bfs.de>, thanks for the tip. Please take a look carefully to check if I got your suggestion correctly. It was tested by compilation only.
> 
>  drivers/media/pci/cx25821/cx25821-video-upstream-ch2.c |   30 ++++++-----------
>  1 file changed, 12 insertions(+), 18 deletions(-)
> 
> diff --git a/drivers/media/pci/cx25821/cx25821-video-upstream-ch2.c b/drivers/media/pci/cx25821/cx25821-video-upstream-ch2.c
> index c8c94fb..b663dac 100644
> --- a/drivers/media/pci/cx25821/cx25821-video-upstream-ch2.c
> +++ b/drivers/media/pci/cx25821/cx25821-video-upstream-ch2.c
> @@ -704,11 +704,9 @@ int cx25821_vidupstream_init_ch2(struct cx25821_dev *dev, int channel_select,
>  {
>  	struct sram_channel *sram_ch;
>  	u32 tmp;
> -	int retval = 0;
>  	int err = 0;
>  	int data_frame_size = 0;
>  	int risc_buffer_size = 0;
> -	int str_length = 0;
>  
>  	if (dev->_is_running_ch2) {
>  		pr_info("Video Channel is still running so return!\n");
> @@ -744,20 +742,16 @@ int cx25821_vidupstream_init_ch2(struct cx25821_dev *dev, int channel_select,
>  	risc_buffer_size = dev->_isNTSC_ch2 ?
>  		NTSC_RISC_BUF_SIZE : PAL_RISC_BUF_SIZE;
>  
> -	if (dev->input_filename_ch2) {
> -		str_length = strlen(dev->input_filename_ch2);
> -		dev->_filename_ch2 = kmemdup(dev->input_filename_ch2,
> -					     str_length + 1, GFP_KERNEL);
> -
> -		if (!dev->_filename_ch2)
> -			goto error;
> -	} else {
> -		str_length = strlen(dev->_defaultname_ch2);
> -		dev->_filename_ch2 = kmemdup(dev->_defaultname_ch2,
> -					     str_length + 1, GFP_KERNEL);
> +	if (dev->input_filename_ch2)
> +		dev->_filename_ch2 = kstrdup(dev->input_filename_ch2,
> +								GFP_KERNEL);
> +	else
> +		dev->_filename_ch2 = kstrdup(dev->_defaultname_ch2,
> +								GFP_KERNEL);
>  
> -		if (!dev->_filename_ch2)
> -			goto error;
> +	if (!dev->_filename_ch2) {
> +		err = -ENOENT;
> +		goto error;
>  	}
>  
>  	/* Default if filename is empty string */
> @@ -773,7 +767,7 @@ int cx25821_vidupstream_init_ch2(struct cx25821_dev *dev, int channel_select,
>  		}
>  	}
>  
> -	retval = cx25821_sram_channel_setup_upstream(dev, sram_ch,
> +	err = cx25821_sram_channel_setup_upstream(dev, sram_ch,
>  						dev->_line_size_ch2, 0);
>  
>  	/* setup fifo + format */
> @@ -783,9 +777,9 @@ int cx25821_vidupstream_init_ch2(struct cx25821_dev *dev, int channel_select,
>  	dev->upstream_databuf_size_ch2 = data_frame_size * 2;
>  
>  	/* Allocating buffers and prepare RISC program */
> -	retval = cx25821_upstream_buffer_prepare_ch2(dev, sram_ch,
> +	err = cx25821_upstream_buffer_prepare_ch2(dev, sram_ch,
>  						dev->_line_size_ch2);
> -	if (retval < 0) {
> +	if (err < 0) {
>  		pr_err("%s: Failed to set up Video upstream buffers!\n",
>  		       dev->name);
>  		goto error;
> 
> 
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  
Peter Senna Tschudin Sept. 10, 2012, 12:45 p.m. UTC | #3
>
> You're replacing kmemdup for kstrdup, which is great,
> but that's not anywhere in the commit message.
Sorry for that.

>
> I'm not sure if you should re-send, but you should definitely
> try to have better commit messages in the future!
I'll kindly ask to ignore the V2 of this patch. I'll send other patch
to be applied after the V1. The second patch will replace kmemdup for
kstrdup. Please ignore the patch:
http://patchwork.linuxtv.org/patch/14237/

>
> Not to mention you're doing two things in one patch, and that makes
> very difficult to bisect.
This is really bad thing to do in a single patch. Sorry for that too.

>
> Thanks (and sorry for the nitpick)...

Thanks!

> Ezequiel.
  

Patch

diff --git a/drivers/media/pci/cx25821/cx25821-video-upstream-ch2.c b/drivers/media/pci/cx25821/cx25821-video-upstream-ch2.c
index c8c94fb..b663dac 100644
--- a/drivers/media/pci/cx25821/cx25821-video-upstream-ch2.c
+++ b/drivers/media/pci/cx25821/cx25821-video-upstream-ch2.c
@@ -704,11 +704,9 @@  int cx25821_vidupstream_init_ch2(struct cx25821_dev *dev, int channel_select,
 {
 	struct sram_channel *sram_ch;
 	u32 tmp;
-	int retval = 0;
 	int err = 0;
 	int data_frame_size = 0;
 	int risc_buffer_size = 0;
-	int str_length = 0;
 
 	if (dev->_is_running_ch2) {
 		pr_info("Video Channel is still running so return!\n");
@@ -744,20 +742,16 @@  int cx25821_vidupstream_init_ch2(struct cx25821_dev *dev, int channel_select,
 	risc_buffer_size = dev->_isNTSC_ch2 ?
 		NTSC_RISC_BUF_SIZE : PAL_RISC_BUF_SIZE;
 
-	if (dev->input_filename_ch2) {
-		str_length = strlen(dev->input_filename_ch2);
-		dev->_filename_ch2 = kmemdup(dev->input_filename_ch2,
-					     str_length + 1, GFP_KERNEL);
-
-		if (!dev->_filename_ch2)
-			goto error;
-	} else {
-		str_length = strlen(dev->_defaultname_ch2);
-		dev->_filename_ch2 = kmemdup(dev->_defaultname_ch2,
-					     str_length + 1, GFP_KERNEL);
+	if (dev->input_filename_ch2)
+		dev->_filename_ch2 = kstrdup(dev->input_filename_ch2,
+								GFP_KERNEL);
+	else
+		dev->_filename_ch2 = kstrdup(dev->_defaultname_ch2,
+								GFP_KERNEL);
 
-		if (!dev->_filename_ch2)
-			goto error;
+	if (!dev->_filename_ch2) {
+		err = -ENOENT;
+		goto error;
 	}
 
 	/* Default if filename is empty string */
@@ -773,7 +767,7 @@  int cx25821_vidupstream_init_ch2(struct cx25821_dev *dev, int channel_select,
 		}
 	}
 
-	retval = cx25821_sram_channel_setup_upstream(dev, sram_ch,
+	err = cx25821_sram_channel_setup_upstream(dev, sram_ch,
 						dev->_line_size_ch2, 0);
 
 	/* setup fifo + format */
@@ -783,9 +777,9 @@  int cx25821_vidupstream_init_ch2(struct cx25821_dev *dev, int channel_select,
 	dev->upstream_databuf_size_ch2 = data_frame_size * 2;
 
 	/* Allocating buffers and prepare RISC program */
-	retval = cx25821_upstream_buffer_prepare_ch2(dev, sram_ch,
+	err = cx25821_upstream_buffer_prepare_ch2(dev, sram_ch,
 						dev->_line_size_ch2);
-	if (retval < 0) {
+	if (err < 0) {
 		pr_err("%s: Failed to set up Video upstream buffers!\n",
 		       dev->name);
 		goto error;