hwspinlock: Fix incorrect return pointers
The commit 4f1acd758b
("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>
This commit is contained in:
parent
c8d0498967
commit
ddb34f480d
|
@ -877,10 +877,10 @@ struct hwspinlock *devm_hwspin_lock_request(struct device *dev)
|
||||||
|
|
||||||
ptr = devres_alloc(devm_hwspin_lock_release, sizeof(*ptr), GFP_KERNEL);
|
ptr = devres_alloc(devm_hwspin_lock_release, sizeof(*ptr), GFP_KERNEL);
|
||||||
if (!ptr)
|
if (!ptr)
|
||||||
return ERR_PTR(-ENOMEM);
|
return NULL;
|
||||||
|
|
||||||
hwlock = hwspin_lock_request();
|
hwlock = hwspin_lock_request();
|
||||||
if (!IS_ERR(hwlock)) {
|
if (hwlock) {
|
||||||
*ptr = hwlock;
|
*ptr = hwlock;
|
||||||
devres_add(dev, ptr);
|
devres_add(dev, ptr);
|
||||||
} else {
|
} else {
|
||||||
|
@ -913,10 +913,10 @@ struct hwspinlock *devm_hwspin_lock_request_specific(struct device *dev,
|
||||||
|
|
||||||
ptr = devres_alloc(devm_hwspin_lock_release, sizeof(*ptr), GFP_KERNEL);
|
ptr = devres_alloc(devm_hwspin_lock_release, sizeof(*ptr), GFP_KERNEL);
|
||||||
if (!ptr)
|
if (!ptr)
|
||||||
return ERR_PTR(-ENOMEM);
|
return NULL;
|
||||||
|
|
||||||
hwlock = hwspin_lock_request_specific(id);
|
hwlock = hwspin_lock_request_specific(id);
|
||||||
if (!IS_ERR(hwlock)) {
|
if (hwlock) {
|
||||||
*ptr = hwlock;
|
*ptr = hwlock;
|
||||||
devres_add(dev, ptr);
|
devres_add(dev, ptr);
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue