diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2013-11-22 02:50:46 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-12-20 10:45:10 -0500 |
commit | 89e6d5d2c91925b16e6eaf2e867325ec3c47d513 (patch) | |
tree | 17ab3b7e6f79210ed1488539640beddf95a97362 | |
parent | 53ef7579cf5eaf0fafcce062edbd0bf6dd20cabe (diff) |
media: af9035: unlock on error in af9035_i2c_master_xfer()
commit 3189ef0290dcc9f44782672fade35847cb30da00 upstream.
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-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 d45d05ed8c01..46f05ad529f9 100644 --- a/drivers/media/usb/dvb-usb-v2/af9035.c +++ b/drivers/media/usb/dvb-usb-v2/af9035.c | |||
@@ -244,7 +244,8 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap, | |||
244 | dev_warn(&d->udev->dev, | 244 | dev_warn(&d->udev->dev, |
245 | "%s: i2c xfer: len=%d is too big!\n", | 245 | "%s: i2c xfer: len=%d is too big!\n", |
246 | KBUILD_MODNAME, msg[0].len); | 246 | KBUILD_MODNAME, msg[0].len); |
247 | return -EOPNOTSUPP; | 247 | ret = -EOPNOTSUPP; |
248 | goto unlock; | ||
248 | } | 249 | } |
249 | req.mbox |= ((msg[0].addr & 0x80) >> 3); | 250 | req.mbox |= ((msg[0].addr & 0x80) >> 3); |
250 | buf[0] = msg[1].len; | 251 | buf[0] = msg[1].len; |
@@ -280,7 +281,8 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap, | |||
280 | dev_warn(&d->udev->dev, | 281 | dev_warn(&d->udev->dev, |
281 | "%s: i2c xfer: len=%d is too big!\n", | 282 | "%s: i2c xfer: len=%d is too big!\n", |
282 | KBUILD_MODNAME, msg[0].len); | 283 | KBUILD_MODNAME, msg[0].len); |
283 | return -EOPNOTSUPP; | 284 | ret = -EOPNOTSUPP; |
285 | goto unlock; | ||
284 | } | 286 | } |
285 | req.mbox |= ((msg[0].addr & 0x80) >> 3); | 287 | req.mbox |= ((msg[0].addr & 0x80) >> 3); |
286 | buf[0] = msg[0].len; | 288 | buf[0] = msg[0].len; |
@@ -300,6 +302,7 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap, | |||
300 | ret = -EOPNOTSUPP; | 302 | ret = -EOPNOTSUPP; |
301 | } | 303 | } |
302 | 304 | ||
305 | unlock: | ||
303 | mutex_unlock(&d->i2c_mutex); | 306 | mutex_unlock(&d->i2c_mutex); |
304 | 307 | ||
305 | if (ret < 0) | 308 | if (ret < 0) |