media: dvb-usb-v2: af9035: fix missing unlock
[ Upstream commitf31b2cb85f
] Instead of returning an error, goto the mutex unlock at the end of the function. Fixes smatch warning: drivers/media/usb/dvb-usb-v2/af9035.c:467 af9035_i2c_master_xfer() warn: inconsistent returns '&d->i2c_mutex'. Locked on : 326,387 Unlocked on: 465,467 Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Fixes:7bf744f2de
("media: dvb-usb-v2: af9035: Fix null-ptr-deref in af9035_i2c_master_xfer") Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
c1c88d6692
commit
2b9cecf001
@ -322,8 +322,10 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
|
|||||||
ret = -EOPNOTSUPP;
|
ret = -EOPNOTSUPP;
|
||||||
} else if ((msg[0].addr == state->af9033_i2c_addr[0]) ||
|
} else if ((msg[0].addr == state->af9033_i2c_addr[0]) ||
|
||||||
(msg[0].addr == state->af9033_i2c_addr[1])) {
|
(msg[0].addr == state->af9033_i2c_addr[1])) {
|
||||||
if (msg[0].len < 3 || msg[1].len < 1)
|
if (msg[0].len < 3 || msg[1].len < 1) {
|
||||||
return -EOPNOTSUPP;
|
ret = -EOPNOTSUPP;
|
||||||
|
goto unlock;
|
||||||
|
}
|
||||||
/* demod access via firmware interface */
|
/* demod access via firmware interface */
|
||||||
u32 reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
|
u32 reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
|
||||||
msg[0].buf[2];
|
msg[0].buf[2];
|
||||||
@ -383,8 +385,10 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
|
|||||||
ret = -EOPNOTSUPP;
|
ret = -EOPNOTSUPP;
|
||||||
} else if ((msg[0].addr == state->af9033_i2c_addr[0]) ||
|
} else if ((msg[0].addr == state->af9033_i2c_addr[0]) ||
|
||||||
(msg[0].addr == state->af9033_i2c_addr[1])) {
|
(msg[0].addr == state->af9033_i2c_addr[1])) {
|
||||||
if (msg[0].len < 3)
|
if (msg[0].len < 3) {
|
||||||
return -EOPNOTSUPP;
|
ret = -EOPNOTSUPP;
|
||||||
|
goto unlock;
|
||||||
|
}
|
||||||
/* demod access via firmware interface */
|
/* demod access via firmware interface */
|
||||||
u32 reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
|
u32 reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 |
|
||||||
msg[0].buf[2];
|
msg[0].buf[2];
|
||||||
@ -459,6 +463,7 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap,
|
|||||||
ret = -EOPNOTSUPP;
|
ret = -EOPNOTSUPP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unlock:
|
||||||
mutex_unlock(&d->i2c_mutex);
|
mutex_unlock(&d->i2c_mutex);
|
||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
|
Reference in New Issue
Block a user