diff mbox series

gpio: mpc8xxx: resolve coverity warnings

Message ID 20201203073910.20113-1-biwen.li@oss.nxp.com
State New
Headers show
Series gpio: mpc8xxx: resolve coverity warnings | expand

Commit Message

Biwen Li (OSS) Dec. 3, 2020, 7:39 a.m. UTC
From: Biwen Li <biwen.li@nxp.com>

Resolve coverity warnings as follows,
    cond_at_most: Checking gpio >= 28U implies that gpio may be up
    to 27 on the false branch.
    overrun-call: Overrunning callees array of size 3 by passing
    argument gpio (which evaluates to 27)
    in call to *mpc8xxx_gc->direction_output

    cond_at_least: Checking gpio <= 3U implies that gpio is at least 4 on
    the false branch.
    overrun-call: Overrunning callee's array of size 3 by passing argument
    gpio (which evaluates to 4) in call to *mpc8xxx_gc->direction_output

Signed-off-by: Biwen Li <biwen.li@nxp.com>
---
 drivers/gpio/gpio-mpc8xxx.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Bartosz Golaszewski Dec. 3, 2020, 8:01 a.m. UTC | #1
On Thu, Dec 3, 2020 at 8:31 AM Biwen Li <biwen.li@oss.nxp.com> wrote:
>
> From: Biwen Li <biwen.li@nxp.com>
>
> Resolve coverity warnings as follows,
>     cond_at_most: Checking gpio >= 28U implies that gpio may be up
>     to 27 on the false branch.
>     overrun-call: Overrunning callees array of size 3 by passing
>     argument gpio (which evaluates to 27)
>     in call to *mpc8xxx_gc->direction_output
>
>     cond_at_least: Checking gpio <= 3U implies that gpio is at least 4 on
>     the false branch.
>     overrun-call: Overrunning callee's array of size 3 by passing argument
>     gpio (which evaluates to 4) in call to *mpc8xxx_gc->direction_output
>
> Signed-off-by: Biwen Li <biwen.li@nxp.com>
> ---
>  drivers/gpio/gpio-mpc8xxx.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpio/gpio-mpc8xxx.c b/drivers/gpio/gpio-mpc8xxx.c
> index a6c2bbdcaa10..12c9a91d87b7 100644
> --- a/drivers/gpio/gpio-mpc8xxx.c
> +++ b/drivers/gpio/gpio-mpc8xxx.c
> @@ -3,6 +3,7 @@
>   *
>   * Copyright (C) 2008 Peter Korsgaard <jacmet@sunsite.dk>
>   * Copyright (C) 2016 Freescale Semiconductor Inc.
> + * Copyright 2020 NXP

A copyright notice on a two-line change is a bit too much, don't you think?

>   *
>   * This file is licensed under the terms of the GNU General Public License
>   * version 2.  This program is licensed "as is" without any warranty of any
> @@ -80,7 +81,7 @@ static int mpc5121_gpio_dir_out(struct gpio_chip *gc,
>  {
>         struct mpc8xxx_gpio_chip *mpc8xxx_gc = gpiochip_get_data(gc);
>         /* GPIO 28..31 are input only on MPC5121 */
> -       if (gpio >= 28)
> +       if (gpio >= 28U)
>                 return -EINVAL;

I don't really understand the commit message but looking at the code
is even more confusing. What are you fixing here actually?

Bartosz

>
>         return mpc8xxx_gc->direction_output(gc, gpio, val);
> @@ -91,7 +92,7 @@ static int mpc5125_gpio_dir_out(struct gpio_chip *gc,
>  {
>         struct mpc8xxx_gpio_chip *mpc8xxx_gc = gpiochip_get_data(gc);
>         /* GPIO 0..3 are input only on MPC5125 */
> -       if (gpio <= 3)
> +       if (gpio <= 3U)
>                 return -EINVAL;
>
>         return mpc8xxx_gc->direction_output(gc, gpio, val);
> --
> 2.17.1
>
Biwen Li (OSS) Dec. 3, 2020, 8:07 a.m. UTC | #2
> On Thu, Dec 3, 2020 at 8:31 AM Biwen Li <biwen.li@oss.nxp.com> wrote:

> >

> > From: Biwen Li <biwen.li@nxp.com>

> >

> > Resolve coverity warnings as follows,

> >     cond_at_most: Checking gpio >= 28U implies that gpio may be up

> >     to 27 on the false branch.

> >     overrun-call: Overrunning callees array of size 3 by passing

> >     argument gpio (which evaluates to 27)

> >     in call to *mpc8xxx_gc->direction_output

> >

> >     cond_at_least: Checking gpio <= 3U implies that gpio is at least 4 on

> >     the false branch.

> >     overrun-call: Overrunning callee's array of size 3 by passing argument

> >     gpio (which evaluates to 4) in call to

> > *mpc8xxx_gc->direction_output

> >

> > Signed-off-by: Biwen Li <biwen.li@nxp.com>

> > ---

> >  drivers/gpio/gpio-mpc8xxx.c | 5 +++--

> >  1 file changed, 3 insertions(+), 2 deletions(-)

> >

> > diff --git a/drivers/gpio/gpio-mpc8xxx.c b/drivers/gpio/gpio-mpc8xxx.c

> > index a6c2bbdcaa10..12c9a91d87b7 100644

> > --- a/drivers/gpio/gpio-mpc8xxx.c

> > +++ b/drivers/gpio/gpio-mpc8xxx.c

> > @@ -3,6 +3,7 @@

> >   *

> >   * Copyright (C) 2008 Peter Korsgaard <jacmet@sunsite.dk>

> >   * Copyright (C) 2016 Freescale Semiconductor Inc.

> > + * Copyright 2020 NXP

> 

> A copyright notice on a two-line change is a bit too much, don't you think?

Okay, got it. Will remove it in v2.
> 

> >   *

> >   * This file is licensed under the terms of the GNU General Public License

> >   * version 2.  This program is licensed "as is" without any warranty

> > of any @@ -80,7 +81,7 @@ static int mpc5121_gpio_dir_out(struct

> > gpio_chip *gc,  {

> >         struct mpc8xxx_gpio_chip *mpc8xxx_gc = gpiochip_get_data(gc);

> >         /* GPIO 28..31 are input only on MPC5121 */

> > -       if (gpio >= 28)

> > +       if (gpio >= 28U)

> >                 return -EINVAL;

> 

> I don't really understand the commit message but looking at the code is even

> more confusing. What are you fixing here actually?

Try to fix code warning that generated by coverity scan tool(static code analysis tool)
> 

> Bartosz

> 

> >

> >         return mpc8xxx_gc->direction_output(gc, gpio, val); @@ -91,7

> > +92,7 @@ static int mpc5125_gpio_dir_out(struct gpio_chip *gc,  {

> >         struct mpc8xxx_gpio_chip *mpc8xxx_gc = gpiochip_get_data(gc);

> >         /* GPIO 0..3 are input only on MPC5125 */

> > -       if (gpio <= 3)

> > +       if (gpio <= 3U)

> >                 return -EINVAL;

> >

> >         return mpc8xxx_gc->direction_output(gc, gpio, val);

> > --

> > 2.17.1

> >
diff mbox series

Patch

diff --git a/drivers/gpio/gpio-mpc8xxx.c b/drivers/gpio/gpio-mpc8xxx.c
index a6c2bbdcaa10..12c9a91d87b7 100644
--- a/drivers/gpio/gpio-mpc8xxx.c
+++ b/drivers/gpio/gpio-mpc8xxx.c
@@ -3,6 +3,7 @@ 
  *
  * Copyright (C) 2008 Peter Korsgaard <jacmet@sunsite.dk>
  * Copyright (C) 2016 Freescale Semiconductor Inc.
+ * Copyright 2020 NXP
  *
  * This file is licensed under the terms of the GNU General Public License
  * version 2.  This program is licensed "as is" without any warranty of any
@@ -80,7 +81,7 @@  static int mpc5121_gpio_dir_out(struct gpio_chip *gc,
 {
 	struct mpc8xxx_gpio_chip *mpc8xxx_gc = gpiochip_get_data(gc);
 	/* GPIO 28..31 are input only on MPC5121 */
-	if (gpio >= 28)
+	if (gpio >= 28U)
 		return -EINVAL;
 
 	return mpc8xxx_gc->direction_output(gc, gpio, val);
@@ -91,7 +92,7 @@  static int mpc5125_gpio_dir_out(struct gpio_chip *gc,
 {
 	struct mpc8xxx_gpio_chip *mpc8xxx_gc = gpiochip_get_data(gc);
 	/* GPIO 0..3 are input only on MPC5125 */
-	if (gpio <= 3)
+	if (gpio <= 3U)
 		return -EINVAL;
 
 	return mpc8xxx_gc->direction_output(gc, gpio, val);