From: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx> The fact that part of the resources associated with the nvmem resources is freed by the release() callback in device_type caused me some confusion. Add a comment explaining that to nvmem_register(). Signed-off-by: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx> --- drivers/nvmem/core.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index 40fe5913c264..6e28f3fddf53 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -397,6 +397,11 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config) dev_dbg(&nvmem->dev, "Registering nvmem device %s\n", config->name); + /* + * After calling device_add() we can stop freeing previously + * allocated resources - they'll be freed from nvmem_release() + * when the device's reference count drops to 0. + */ rval = device_add(&nvmem->dev); if (rval) goto err_put_device; -- 2.25.0