mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-07-11 08:15:23 +02:00
nvmem: core: add error handling for dev_set_name
The type of return value of dev_set_name is int, which may return wrong result, so we add error handling for it to reclaim memory of nvmem resource, and return early when an error occurs. Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Link: https://lore.kernel.org/r/20220916122100.170016-4-srinivas.kandagatla@linaro.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
4a575865c1
commit
5544e90c81
|
@ -810,18 +810,24 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config)
|
||||||
|
|
||||||
switch (config->id) {
|
switch (config->id) {
|
||||||
case NVMEM_DEVID_NONE:
|
case NVMEM_DEVID_NONE:
|
||||||
dev_set_name(&nvmem->dev, "%s", config->name);
|
rval = dev_set_name(&nvmem->dev, "%s", config->name);
|
||||||
break;
|
break;
|
||||||
case NVMEM_DEVID_AUTO:
|
case NVMEM_DEVID_AUTO:
|
||||||
dev_set_name(&nvmem->dev, "%s%d", config->name, nvmem->id);
|
rval = dev_set_name(&nvmem->dev, "%s%d", config->name, nvmem->id);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
dev_set_name(&nvmem->dev, "%s%d",
|
rval = dev_set_name(&nvmem->dev, "%s%d",
|
||||||
config->name ? : "nvmem",
|
config->name ? : "nvmem",
|
||||||
config->name ? config->id : nvmem->id);
|
config->name ? config->id : nvmem->id);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (rval) {
|
||||||
|
ida_free(&nvmem_ida, nvmem->id);
|
||||||
|
kfree(nvmem);
|
||||||
|
return ERR_PTR(rval);
|
||||||
|
}
|
||||||
|
|
||||||
nvmem->read_only = device_property_present(config->dev, "read-only") ||
|
nvmem->read_only = device_property_present(config->dev, "read-only") ||
|
||||||
config->read_only || !nvmem->reg_write;
|
config->read_only || !nvmem->reg_write;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user