1
0
Fork 0

[media] msi3101: check I/O return values on stop streaming

Coverity CID 1196496: Unchecked return value (CHECKED_RETURN)

Calling "msi3101_ctrl_msg" without checking return value (as is done
elsewhere 8 out of 10 times).

Reported-by: <scan-admin@coverity.com>
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
hifive-unleashed-5.1
Antti Palosaari 2014-04-05 17:23:43 -03:00 committed by Mauro Carvalho Chehab
parent 11da6ed691
commit cf2a320e1f
1 changed files with 10 additions and 4 deletions

View File

@ -1077,6 +1077,7 @@ static int msi3101_start_streaming(struct vb2_queue *vq, unsigned int count)
static int msi3101_stop_streaming(struct vb2_queue *vq)
{
struct msi3101_state *s = vb2_get_drv_priv(vq);
int ret;
dev_dbg(&s->udev->dev, "%s:\n", __func__);
if (mutex_lock_interruptible(&s->v4l2_lock))
@ -1089,17 +1090,22 @@ static int msi3101_stop_streaming(struct vb2_queue *vq)
/* according to tests, at least 700us delay is required */
msleep(20);
msi3101_ctrl_msg(s, CMD_STOP_STREAMING, 0);
ret = msi3101_ctrl_msg(s, CMD_STOP_STREAMING, 0);
if (ret)
goto err_sleep_tuner;
/* sleep USB IF / ADC */
msi3101_ctrl_msg(s, CMD_WREG, 0x01000003);
ret = msi3101_ctrl_msg(s, CMD_WREG, 0x01000003);
if (ret)
goto err_sleep_tuner;
err_sleep_tuner:
/* sleep tuner */
v4l2_subdev_call(s->v4l2_subdev, core, s_power, 0);
ret = v4l2_subdev_call(s->v4l2_subdev, core, s_power, 0);
mutex_unlock(&s->v4l2_lock);
return 0;
return ret;
}
static struct vb2_ops msi3101_vb2_ops = {