aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hwspinlock/hwspinlock_core.c
diff options
context:
space:
mode:
authorBaolin Wang <baolin.wang@linaro.org>2018-06-27 22:32:21 -0400
committerBjorn Andersson <bjorn.andersson@linaro.org>2018-07-30 23:54:51 -0400
commitddb34f480d1b8051bc18e6ff22e93a6c9a33f94f (patch)
treec34af11c5e0a134259a63c3ae10f56203dc21e31 /drivers/hwspinlock/hwspinlock_core.c
parentc8d049896729423a979d2838175d251b9cfee3b5 (diff)
hwspinlock: Fix incorrect return pointers
The commit 4f1acd758b08 ("hwspinlock: Add devm_xxx() APIs to request/free hwlock") introduces one bug, that will return one error pointer if failed to request one hwlock, but we expect NULL pointer on error for consumers. This patch will fix this issue. Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Baolin Wang <baolin.wang@linaro.org> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Diffstat (limited to 'drivers/hwspinlock/hwspinlock_core.c')
-rw-r--r--drivers/hwspinlock/hwspinlock_core.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/hwspinlock/hwspinlock_core.c b/drivers/hwspinlock/hwspinlock_core.c
index e16d648c30f3..2bad40d42210 100644
--- a/drivers/hwspinlock/hwspinlock_core.c
+++ b/drivers/hwspinlock/hwspinlock_core.c
@@ -877,10 +877,10 @@ struct hwspinlock *devm_hwspin_lock_request(struct device *dev)
877 877
878 ptr = devres_alloc(devm_hwspin_lock_release, sizeof(*ptr), GFP_KERNEL); 878 ptr = devres_alloc(devm_hwspin_lock_release, sizeof(*ptr), GFP_KERNEL);
879 if (!ptr) 879 if (!ptr)
880 return ERR_PTR(-ENOMEM); 880 return NULL;
881 881
882 hwlock = hwspin_lock_request(); 882 hwlock = hwspin_lock_request();
883 if (!IS_ERR(hwlock)) { 883 if (hwlock) {
884 *ptr = hwlock; 884 *ptr = hwlock;
885 devres_add(dev, ptr); 885 devres_add(dev, ptr);
886 } else { 886 } else {
@@ -913,10 +913,10 @@ struct hwspinlock *devm_hwspin_lock_request_specific(struct device *dev,
913 913
914 ptr = devres_alloc(devm_hwspin_lock_release, sizeof(*ptr), GFP_KERNEL); 914 ptr = devres_alloc(devm_hwspin_lock_release, sizeof(*ptr), GFP_KERNEL);
915 if (!ptr) 915 if (!ptr)
916 return ERR_PTR(-ENOMEM); 916 return NULL;
917 917
918 hwlock = hwspin_lock_request_specific(id); 918 hwlock = hwspin_lock_request_specific(id);
919 if (!IS_ERR(hwlock)) { 919 if (hwlock) {
920 *ptr = hwlock; 920 *ptr = hwlock;
921 devres_add(dev, ptr); 921 devres_add(dev, ptr);
922 } else { 922 } else {