Skip to content

Commit de0534d

Browse files
Srinivas-Kandagatlagregkh
authored andcommitted
nvmem: core: fix error handling while validating keepout regions
Current error path on failure of validating keepout regions is calling put_device, eventhough the device is not even registered at that point. Fix this by adding proper error handling of freeing ida and nvmem. Fixes: fd3bb8f ("nvmem: core: Add support for keepout regions") Cc: <stable@vger.kernel.org> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Link: https://lore.kernel.org/r/20210806085947.22682-5-srinivas.kandagatla@linaro.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 7b80844 commit de0534d

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

drivers/nvmem/core.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -824,8 +824,11 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config)
824824

825825
if (nvmem->nkeepout) {
826826
rval = nvmem_validate_keepouts(nvmem);
827-
if (rval)
828-
goto err_put_device;
827+
if (rval) {
828+
ida_free(&nvmem_ida, nvmem->id);
829+
kfree(nvmem);
830+
return ERR_PTR(rval);
831+
}
829832
}
830833

831834
dev_dbg(&nvmem->dev, "Registering nvmem device %s\n", config->name);

0 commit comments

Comments
 (0)