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 <[email protected]>
Signed-off-by: Baolin Wang <[email protected]>
Signed-off-by: Bjorn Andersson <[email protected]>
ptr = devres_alloc(devm_hwspin_lock_release, sizeof(*ptr), GFP_KERNEL);
if (!ptr)
- return ERR_PTR(-ENOMEM);
+ return NULL;
hwlock = hwspin_lock_request();
- if (!IS_ERR(hwlock)) {
+ if (hwlock) {
*ptr = hwlock;
devres_add(dev, ptr);
} else {
ptr = devres_alloc(devm_hwspin_lock_release, sizeof(*ptr), GFP_KERNEL);
if (!ptr)
- return ERR_PTR(-ENOMEM);
+ return NULL;
hwlock = hwspin_lock_request_specific(id);
- if (!IS_ERR(hwlock)) {
+ if (hwlock) {
*ptr = hwlock;
devres_add(dev, ptr);
} else {