| 123456789101112131415161718192021222324252627282930313233343536 |
- From de0534df93474f268486c486ea7e01b44a478026 Mon Sep 17 00:00:00 2001
- From: Srinivas Kandagatla <[email protected]>
- Date: Fri, 6 Aug 2021 09:59:47 +0100
- Subject: [PATCH] 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: fd3bb8f54a88 ("nvmem: core: Add support for keepout regions")
- Cc: <[email protected]>
- Signed-off-by: Srinivas Kandagatla <[email protected]>
- Link: https://lore.kernel.org/r/[email protected]
- Signed-off-by: Greg Kroah-Hartman <[email protected]>
- ---
- drivers/nvmem/core.c | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
- --- a/drivers/nvmem/core.c
- +++ b/drivers/nvmem/core.c
- @@ -827,8 +827,11 @@ struct nvmem_device *nvmem_register(cons
-
- if (nvmem->nkeepout) {
- rval = nvmem_validate_keepouts(nvmem);
- - if (rval)
- - goto err_put_device;
- + if (rval) {
- + ida_free(&nvmem_ida, nvmem->id);
- + kfree(nvmem);
- + return ERR_PTR(rval);
- + }
- }
-
- dev_dbg(&nvmem->dev, "Registering nvmem device %s\n", config->name);
|