summaryrefslogtreecommitdiffstats
path: root/drivers/slimbus
diff options
context:
space:
mode:
authorSrinivas Kandagatla <srinivas.kandagatla@linaro.org>2019-01-14 13:44:47 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-01-22 13:34:34 +0100
commitcfb32101ba148ad772a2556fc5086069c59d882f (patch)
tree9010546af78965622da34efbf8e7f4e2c6743a14 /drivers/slimbus
parent8631f940b81bf0da3d375fce166d381fa8c47bb2 (diff)
downloadlinux-stable-cfb32101ba148ad772a2556fc5086069c59d882f.tar.gz
linux-stable-cfb32101ba148ad772a2556fc5086069c59d882f.tar.bz2
linux-stable-cfb32101ba148ad772a2556fc5086069c59d882f.zip
slimbus: core: do not call device_status under a lock
Calling device_status callback under a lock would prevent drivers to do any slimbus trasactions which would invoke this lock like get_laddr(). Remove this unnecessary lock! Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/slimbus')
-rw-r--r--drivers/slimbus/core.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/slimbus/core.c b/drivers/slimbus/core.c
index 9e4f3b21ba8c..1ba08b5f2e78 100644
--- a/drivers/slimbus/core.c
+++ b/drivers/slimbus/core.c
@@ -466,6 +466,7 @@ static int slim_device_alloc_laddr(struct slim_device *sbdev,
sbdev->laddr = laddr;
sbdev->is_laddr_valid = true;
+ mutex_unlock(&ctrl->lock);
slim_device_update_status(sbdev, SLIM_DEVICE_STATUS_UP);
@@ -473,6 +474,8 @@ static int slim_device_alloc_laddr(struct slim_device *sbdev,
laddr, sbdev->e_addr.manf_id, sbdev->e_addr.prod_code,
sbdev->e_addr.dev_index, sbdev->e_addr.instance);
+ return 0;
+
err:
mutex_unlock(&ctrl->lock);
return ret;