Commit 5544e90c authored by Gaosheng Cui's avatar Gaosheng Cui Committed by Greg Kroah-Hartman

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: default avatarGaosheng Cui <cuigaosheng1@huawei.com>
Signed-off-by: default avatarSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20220916122100.170016-4-srinivas.kandagatla@linaro.orgSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 4a575865
...@@ -810,18 +810,24 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config) ...@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment