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
next prev parent 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.