All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: Colin King <colin.king@canonical.com>
Cc: Sakari Ailus <sakari.ailus@linux.intel.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Srinivas Kandagatla <srinivas.kandagatla@linaro.org>,
	linux-media@vger.kernel.org, kernel-janitors@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] media: i2c: adp1653: fix error handling from a call to adp1653_get_fault
Date: Sat, 27 Feb 2021 13:17:20 +0300	[thread overview]
Message-ID: <20210227101719.GG2087@kadam> (raw)
In-Reply-To: <20210226232229.1076199-1-colin.king@canonical.com>

On Fri, Feb 26, 2021 at 11:22:29PM +0000, Colin King wrote:
> From: Colin Ian King <colin.king@canonical.com>
> 
> The error check on rval from the call to adp1653_get_fault currently
> returns if rval is non-zero. This appears to be incorrect as the
> following if statement checks for various bit settings in rval so
> clearly rval is expected to be non-zero at that point. Coverity
> flagged the if statement up as deadcode.  Fix this so the error
> return path only occurs when rval is negative.
> 
> Addresses-Coverity: ("Logically dead code")
> Fixes: 287980e49ffc ("remove lots of IS_ERR_VALUE abuses")
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
>  drivers/media/i2c/adp1653.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/media/i2c/adp1653.c b/drivers/media/i2c/adp1653.c
> index 522a0b10e415..1a4878385394 100644
> --- a/drivers/media/i2c/adp1653.c
> +++ b/drivers/media/i2c/adp1653.c
> @@ -170,7 +170,7 @@ static int adp1653_set_ctrl(struct v4l2_ctrl *ctrl)
>  	int rval;
>  
>  	rval = adp1653_get_fault(flash);
> -	if (rval)
> +	if (rval < 0)
>  		return rval;

This is good, but all the other callers need to fixed as well:


   140  static int adp1653_get_ctrl(struct v4l2_ctrl *ctrl)
   141  {
   142          struct adp1653_flash *flash =
   143                  container_of(ctrl->handler, struct adp1653_flash, ctrls);
   144          int rval;
   145  
   146          rval = adp1653_get_fault(flash);
   147          if (rval)
   148                  return rval;
   149  
   150          ctrl->cur.val = 0;
   151  
   152          if (flash->fault & ADP1653_REG_FAULT_FLT_SCP)
                    ^^^^^^^^^^^^
flash->fault is the equivalent of "rval" for non-negative returns so
this condition can never be true.  We should never be returning these
weird firmware ADP1653_REG_FAULT_FLT_SCP fault codes to the v4l2 layers.

   153                  ctrl->cur.val |= V4L2_FLASH_FAULT_SHORT_CIRCUIT;
   154          if (flash->fault & ADP1653_REG_FAULT_FLT_OT)
   155                  ctrl->cur.val |= V4L2_FLASH_FAULT_OVER_TEMPERATURE;
   156          if (flash->fault & ADP1653_REG_FAULT_FLT_TMR)
   157                  ctrl->cur.val |= V4L2_FLASH_FAULT_TIMEOUT;
   158          if (flash->fault & ADP1653_REG_FAULT_FLT_OV)
   159                  ctrl->cur.val |= V4L2_FLASH_FAULT_OVER_VOLTAGE;
   160  
   161          flash->fault = 0;
   162  
   163          return 0;
   164  }

regards,
dan carpenter


  reply	other threads:[~2021-02-27 10:18 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-26 23:22 [PATCH] media: i2c: adp1653: fix error handling from a call to adp1653_get_fault Colin King
2021-02-27 10:17 ` Dan Carpenter [this message]
2021-03-01  7:10   ` Sakari Ailus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210227101719.GG2087@kadam \
    --to=dan.carpenter@oracle.com \
    --cc=arnd@arndb.de \
    --cc=colin.king@canonical.com \
    --cc=kernel-janitors@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=sakari.ailus@linux.intel.com \
    --cc=srinivas.kandagatla@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.