diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2013-11-22 02:50:46 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-12-04 12:27:21 -0500 |
commit | 3189ef0290dcc9f44782672fade35847cb30da00 (patch) | |
tree | c71fad6f640f49dd66034e3b4256a31fc623d720 /drivers/media | |
parent | d18a88b1f535d627412b2a265d71b2f7d464860e (diff) |
[media] af9035: unlock on error in af9035_i2c_master_xfer()
We introduced a couple new error paths which are missing unlocks.
Fixes: 7760e148350b ('[media] af9035: Don't use dynamic static allocation')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Cc: stable@vger.kernel.org
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/usb/dvb-usb-v2/af9035.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c b/drivers/media/usb/dvb-usb-v2/af9035.c index 4453b0b3143a..8f9b2cea88f0 100644 --- a/drivers/media/usb/dvb-usb-v2/af9035.c +++ b/drivers/media/usb/dvb-usb-v2/af9035.c | |||
@@ -245,7 +245,8 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap, | |||
245 | dev_warn(&d->udev->dev, | 245 | dev_warn(&d->udev->dev, |
246 | "%s: i2c xfer: len=%d is too big!\n", | 246 | "%s: i2c xfer: len=%d is too big!\n", |
247 | KBUILD_MODNAME, msg[0].len); | 247 | KBUILD_MODNAME, msg[0].len); |
248 | return -EOPNOTSUPP; | 248 | ret = -EOPNOTSUPP; |
249 | goto unlock; | ||
249 | } | 250 | } |
250 | req.mbox |= ((msg[0].addr & 0x80) >> 3); | 251 | req.mbox |= ((msg[0].addr & 0x80) >> 3); |
251 | buf[0] = msg[1].len; | 252 | buf[0] = msg[1].len; |
@@ -281,7 +282,8 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap, | |||
281 | dev_warn(&d->udev->dev, | 282 | dev_warn(&d->udev->dev, |
282 | "%s: i2c xfer: len=%d is too big!\n", | 283 | "%s: i2c xfer: len=%d is too big!\n", |
283 | KBUILD_MODNAME, msg[0].len); | 284 | KBUILD_MODNAME, msg[0].len); |
284 | return -EOPNOTSUPP; | 285 | ret = -EOPNOTSUPP; |
286 | goto unlock; | ||
285 | } | 287 | } |
286 | req.mbox |= ((msg[0].addr & 0x80) >> 3); | 288 | req.mbox |= ((msg[0].addr & 0x80) >> 3); |
287 | buf[0] = msg[0].len; | 289 | buf[0] = msg[0].len; |
@@ -319,6 +321,7 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap, | |||
319 | ret = -EOPNOTSUPP; | 321 | ret = -EOPNOTSUPP; |
320 | } | 322 | } |
321 | 323 | ||
324 | unlock: | ||
322 | mutex_unlock(&d->i2c_mutex); | 325 | mutex_unlock(&d->i2c_mutex); |
323 | 326 | ||
324 | if (ret < 0) | 327 | if (ret < 0) |