linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* nvdimm/pmem device lifetime
@ 2017-04-28  4:37 Mika Penttilä
  2017-04-28 15:36 ` Dan Williams
  0 siblings, 1 reply; 2+ messages in thread
From: Mika Penttilä @ 2017-04-28  4:37 UTC (permalink / raw)
  To: LKML, Dan Williams

Hi,

Just wondering the pmem struct device vs gendisk lifetimes.. from pmem_attach_disk():

        device_add_disk(dev, disk);
	devm_add_action_or_reset(dev, pmem_release_disk, disk);


where:
static void pmem_release_disk(void *disk)
{
        del_gendisk(disk);
        put_disk(disk);
}


but device_add_disk() makes disk pin dev (as a parent), and it's unpinned by del_gendisk()
which is called when dev is released, but it's not because of this circular dependency?

--Mika

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: nvdimm/pmem device lifetime
  2017-04-28  4:37 nvdimm/pmem device lifetime Mika Penttilä
@ 2017-04-28 15:36 ` Dan Williams
  0 siblings, 0 replies; 2+ messages in thread
From: Dan Williams @ 2017-04-28 15:36 UTC (permalink / raw)
  To: Mika Penttilä; +Cc: LKML

On Thu, Apr 27, 2017 at 9:37 PM, Mika Penttilä
<mika.penttila@nextfour.com> wrote:
> Hi,
>
> Just wondering the pmem struct device vs gendisk lifetimes.. from pmem_attach_disk():
>
>         device_add_disk(dev, disk);
>         devm_add_action_or_reset(dev, pmem_release_disk, disk);
>
>
> where:
> static void pmem_release_disk(void *disk)
> {
>         del_gendisk(disk);
>         put_disk(disk);
> }
>
>
> but device_add_disk() makes disk pin dev (as a parent), and it's unpinned by del_gendisk()
> which is called when dev is released, but it's not because of this circular dependency?

pmem_release_disk() is called when the driver is unbound, well before
the device is released. See the calls to devres_release_all() in the
device_release_driver() path.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-04-28 15:36 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-28  4:37 nvdimm/pmem device lifetime Mika Penttilä
2017-04-28 15:36 ` Dan Williams

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).