summaryrefslogtreecommitdiffstats
path: root/drivers/nvmem
diff options
context:
space:
mode:
authorAlban Bedel <albeu@free.fr>2019-01-28 15:55:04 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-01-31 16:24:14 +0100
commit95b65195d571ab589a6d6893a418922757e06399 (patch)
treeee111e025dff984fb7d70f8debb4a506c8c30f8d /drivers/nvmem
parentd4e7fef1a9a5d2bf3f859ba9f50f4d5409a09ab0 (diff)
downloadlinux-95b65195d571ab589a6d6893a418922757e06399.tar.gz
linux-95b65195d571ab589a6d6893a418922757e06399.tar.bz2
linux-95b65195d571ab589a6d6893a418922757e06399.zip
nvmem: core: Always reference the device returned by nvmem_device_get()
In nvmem_device_get(), when the device lookup fails with DT it currently fallback on nvmem_find() which is wrong for two reasons. First nvmem_find() return NULL when nothing is found instead of an ERR_PTR. But nvmem_find() also just lookup the device, it doesn't reference the module and increment the reference count like it is done in the DT path. To fix this we replace the call to nvmem_find() with a call to __nvmem_device_get() which does all the referencing and return a proper ERR_PTR in case of error. Signed-off-by: Alban Bedel <albeu@free.fr> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/nvmem')
-rw-r--r--drivers/nvmem/core.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
index a749a5cb0a4e..1752768dd2d2 100644
--- a/drivers/nvmem/core.c
+++ b/drivers/nvmem/core.c
@@ -874,7 +874,7 @@ struct nvmem_device *nvmem_device_get(struct device *dev, const char *dev_name)
}
- return nvmem_find(dev_name);
+ return __nvmem_device_get(NULL, dev_name);
}
EXPORT_SYMBOL_GPL(nvmem_device_get);