aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2013-11-22 02:50:46 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-12-20 10:45:10 -0500
commit89e6d5d2c91925b16e6eaf2e867325ec3c47d513 (patch)
tree17ab3b7e6f79210ed1488539640beddf95a97362
parent53ef7579cf5eaf0fafcce062edbd0bf6dd20cabe (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.c7
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
305unlock:
303 mutex_unlock(&d->i2c_mutex); 306 mutex_unlock(&d->i2c_mutex);
304 307
305 if (ret < 0) 308 if (ret < 0)