From: Johan Hovold <johan@kernel.org>
To: Mika Westerberg <mika.westerberg@linux.intel.com>
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] nvmem: core: Prevent memory leak when device is unregistered
Date: Tue, 16 May 2017 15:45:45 +0200 [thread overview]
Message-ID: <20170516134545.GO3657@localhost> (raw)
In-Reply-To: <20170515111323.10640-1-mika.westerberg@linux.intel.com>
On Mon, May 15, 2017 at 02:13:23PM +0300, Mika Westerberg wrote:
> The nvmem_unregister() calls device_del() for the device but forgets to
> call put_device() to actually release the device object which causes
> that memory to be leaked.
>
> Fix this by calling device_unregister() for the device intead which also
> calls put_device() for the device releasing it eventually.
I was gonna suggest that you fix up the related leaks in the
registration error paths as well, but since they are really distinct I
just submitted a patch to fix those up separately instead (kfree was
being just instead of put_device and the device was never deregistered
on late probe errors).
> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
> ---
> drivers/nvmem/core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
> index 8c830a80a648..112c8072e0f3 100644
> --- a/drivers/nvmem/core.c
> +++ b/drivers/nvmem/core.c
> @@ -528,7 +528,7 @@ int nvmem_unregister(struct nvmem_device *nvmem)
> device_remove_bin_file(nvmem->base_dev, &nvmem->eeprom);
>
> nvmem_device_remove_all_cells(nvmem);
> - device_del(&nvmem->dev);
> + device_unregister(&nvmem->dev);
Might be cleaner to use an explicit call to put_device() here since the
driver currently does not use device_register().
>
> return 0;
> }
Thanks,
Johan
next prev parent reply other threads:[~2017-05-16 13:46 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-15 11:13 [PATCH] nvmem: core: Prevent memory leak when device is unregistered Mika Westerberg
2017-05-15 12:48 ` Andy Shevchenko
2017-05-16 13:45 ` Johan Hovold [this message]
2017-05-16 21:33 ` Andrey Smirnov
2017-05-17 9:10 ` Mika Westerberg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170516134545.GO3657@localhost \
--to=johan@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mika.westerberg@linux.intel.com \
--cc=srinivas.kandagatla@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.