nvmem: fix nvmem_cell_get_from_lookup()
Subsystems (2)
PATCH v2 1/1 nvmem: fix nvmem_cell_get_from_lookup()
From: Bartosz Golaszewski <[email protected]>
We check if the pointer returned by __nvmem_device_get() is not NULL while we should actually check if it is not IS_ERR(nvmem). Fix it.
While we're at it: fix the next error path where we should assign an error value to cell before returning.
Signed-off-by Bartosz Golaszewski <[email protected]>
---
v1 -> v2:
- use ERR_CAST() instead of a direct pointer cast
drivers/nvmem/core.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
drivers/nvmem/core.c +3 -2
@@ -952,9 +952,9 @@ nvmem_cell_get_from_lookup(struct device *dev, const char *con_id) (strcmp(lookup->con_id, con_id) == 0)) {/* This is the right entry. */ nvmem =__nvmem_device_get (NULL , lookup->nvmem_name); -if (!nvmem) { +if (IS_ERR (nvmem)) {/* Provider may not be registered yet. */ - cell =ERR_PTR (-EPROBE_DEFER ); + cell =ERR_CAST (nvmem); goto out; }
@@ -962,6 +962,7 @@ nvmem_cell_get_from_lookup(struct device *dev, const char *con_id) lookup->cell_name);if (!cell) {__nvmem_device_put (nvmem); + cell =ERR_PTR (-ENOENT ); goto out; } }
Signature · 1 line
2.19.0