Messages in this thread Patch in this message | | | From | Bartosz Golaszewski <> | Subject | [PATCH v2] nvmem: fix nvmem_cell_get_from_lookup() | Date | Tue, 2 Oct 2018 11:43:50 +0200 |
| |
From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
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 <bgolaszewski@baylibre.com> --- v1 -> v2: - use ERR_CAST() instead of a direct pointer cast
drivers/nvmem/core.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index ad1227df1984..f49474e1ad49 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -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; } } -- 2.19.0
| |