From: Bartosz Golaszewski Date: Wed, 3 Oct 2018 07:31:11 +0000 (+0200) Subject: nvmem: fix nvmem_cell_get_from_lookup() X-Git-Tag: v4.20-rc1~107^2~28 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cccb3b19e762edc8ef0481be506967555cb9e317;p=thirdparty%2Fkernel%2Flinux.git 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 Reported-by: Stephen Rothwell Acked-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index b4c09bc20b673..31ca04d46c1cc 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; } }