summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorBartosz Golaszewski <bgolaszewski@baylibre.com>2018-10-03 10:31:11 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-10-15 16:56:15 +0300
commitcccb3b19e762edc8ef0481be506967555cb9e317 (patch)
treea18f24999e6132cadd504a74e9da2abd9e7067cf /drivers
parentbadcdff107cbfd7fef5f089260177efc56fe1a9f (diff)
downloadlinux-cccb3b19e762edc8ef0481be506967555cb9e317.tar.xz
nvmem: fix nvmem_cell_get_from_lookup()
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> Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Acked-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/nvmem/core.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
index b4c09bc20b67..31ca04d46c1c 100644
--- a/drivers/nvmem/core.c
+++ b/drivers/nvmem/core.c
@@ -953,9 +953,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;
}
@@ -963,6 +963,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;
}
}