From: Jason Gunthorpe <jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
To: Dan Williams <dan.j.williams-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: Alessandro Zummo
<a.zummo-BfzFCNDTiLLj+vYz1yj4TQ@public.gmane.org>,
Jan Kara <jack-AlSwsSmVLrQ@public.gmane.org>,
linux-iio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Linus Walleij
<linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
Jarkko Sakkinen
<jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
Alexandre Bounine
<alexandre.bounine-49Rm3DX9dRQ@public.gmane.org>,
Alexandre Belloni
<alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
Peter Meerwald-Stadler
<pmeerw-jW+XmwGofnusTnJN9+BGXg@public.gmane.org>,
linux-scsi <linux-scsi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Peter Huewe <peterhuewe-Mmb7MZpHnFY@public.gmane.org>,
Parav Pandit
<pandit.parav-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Sean Hefty <sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
Alexandre Courbot
<gnurou-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Lars-Peter Clausen <lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>,
"James E.J. Bottomley"
<jejb-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>,
rtc-linux-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org,
Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Richard Weinberger <richard-/L3Ra7n9ekc@public.gmane.org>,
Marek Vasut <marek.vasut-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
Hans Verkuil
<hans.verkuil-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>,
Matt
Subject: Re: [PATCH v2 01/16] chardev: add helper function to register char devs with a struct device
Date: Mon, 27 Feb 2017 09:56:18 -0700 [thread overview]
Message-ID: <20170227165618.GE5891@obsidianresearch.com> (raw)
In-Reply-To: <CAPcyv4i91_esBtBxbnDH3ZDd8Mnz4HoJEW2yeEvQ4QikFBjapA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
On Sun, Feb 26, 2017 at 10:21:25AM -0800, Dan Williams wrote:
> > + * cdev_device_add() adds the char device represented by @cdev to the system,
> > + * just as cdev_add does. It then adds @dev to the system using device_add
> > + * The dev_t for the char device will be taken from the struct device which
> > + * needs to be initialized first. This helper function correctly takes a
> > + * reference to the parent device so the parent will not get released until
> > + * all references to the cdev are released.
> > + *
> > + * This function should be used whenever the struct cdev and the
> > + * struct device are members of the same structure whose lifetime is
> > + * managed by the struct device.
> > + */
>
> Perhaps add a note here that userspace may have invoked file
> operations between cdev_add() and a failing device_add(), so
> additional cleanup beyond put_device() (like mmap invalidation) might
> be needed. That can be a later follow-on patch.
Yes please, that is way too subtle. Suggest:
NOTE: Callers must assume that userspace was able to open the cdev and
can call cdev fops callbacks at any time, even if this function fails.
I would also add a note to cdev_device_del:
NOTE: This guarantees that associated sysfs callbacks are not running
or runnable, however any open cdevs will remain and their fops remain
callable even after this returns.
Since I have seen a lot of confusion on that point as well..
Jason
WARNING: multiple messages have this Message-ID (diff)
From: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
To: Dan Williams <dan.j.williams@intel.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>, Jan Kara <jack@suse.cz>,
linux-iio@vger.kernel.org, linux-pci@vger.kernel.org,
Linus Walleij <linus.walleij@linaro.org>,
Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>,
Alexandre Bounine <alexandre.bounine@idt.com>,
Alexandre Belloni <alexandre.belloni@free-electrons.com>,
Peter Meerwald-Stadler <pmeerw@pmeerw.net>,
linux-scsi <linux-scsi@vger.kernel.org>,
Peter Huewe <peterhuewe@gmx.de>,
Parav Pandit <pandit.parav@gmail.com>,
Sean Hefty <sean.hefty@intel.com>,
Alexandre Courbot <gnurou@gmail.com>,
Lars-Peter Clausen <lars@metafoo.de>,
"James E.J. Bottomley" <jejb@linux.vnet.ibm.com>,
rtc-linux@googlegroups.com, Leon Romanovsky <leon@kernel.org>,
linux-rdma@vger.kernel.org, Richard Weinberger <richard@nod.at>,
Marek Vasut <marek.vasut@gmail.com>,
Doug Ledford <dledford@redhat.com>,
Hans Verkuil <hans.verkuil@cisco.com>,
Matt Porter <mporter@kernel.crashing.org>,
Hal Rosenstock <hal.rosenstock@gmail.com>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>,
"Linux-media@vger.kernel.org" <linux-media@vger.kernel.org>,
Boaz Harrosh <ooo@electrozaur.com>, Arnd Bergmann <arnd@arndb.de>,
Boris Brezillon <boris.brezillon@free-electrons.com>,
Sajjan Vikas C <vikas.cha.sajjan@hpe.com>,
linux-input@vger.kernel.org, Marcel Selhorst <tpmdd@selhorst.net>,
Vladimir Zapolskiy <vz@mleia.com>, Joe Perches <joe@perches.com>,
Cyrille Pitchen <cyrille.pitchen@atmel.com>,
Alexander Viro <viro@zeniv.linux.org.uk>,
Bjorn Helgaas <bhelgaas@google.com>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Dmitry Vyukov <dvyukov@google.com>,
"linux-nvdimm@lists.01.org" <linux-nvdimm@ml01.01.org>,
Haggai Eran <haggaie@mellanox.com>,
Brian Norris <computersforpeace@gmail.com>,
Lorenzo Stoakes <lstoakes@gmail.com>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
Artem Bityutskiy <dedekind1@gmail.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-gpio@vger.kernel.org,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Stephen Bates <stephen.bates@microsemi.com>,
Hartmut Knaack <knaack.h@gmx.de>, Olof Johansson <olof@lixom.net>,
linux-mtd@lists.infradead.org,
Andrew Morton <akpm@linux-foundation.org>,
David Woodhouse <dwmw2@infradead.org>
Subject: Re: [PATCH v2 01/16] chardev: add helper function to register char devs with a struct device
Date: Mon, 27 Feb 2017 09:56:18 -0700 [thread overview]
Message-ID: <20170227165618.GE5891@obsidianresearch.com> (raw)
In-Reply-To: <CAPcyv4i91_esBtBxbnDH3ZDd8Mnz4HoJEW2yeEvQ4QikFBjapA@mail.gmail.com>
On Sun, Feb 26, 2017 at 10:21:25AM -0800, Dan Williams wrote:
> > + * cdev_device_add() adds the char device represented by @cdev to the system,
> > + * just as cdev_add does. It then adds @dev to the system using device_add
> > + * The dev_t for the char device will be taken from the struct device which
> > + * needs to be initialized first. This helper function correctly takes a
> > + * reference to the parent device so the parent will not get released until
> > + * all references to the cdev are released.
> > + *
> > + * This function should be used whenever the struct cdev and the
> > + * struct device are members of the same structure whose lifetime is
> > + * managed by the struct device.
> > + */
>
> Perhaps add a note here that userspace may have invoked file
> operations between cdev_add() and a failing device_add(), so
> additional cleanup beyond put_device() (like mmap invalidation) might
> be needed. That can be a later follow-on patch.
Yes please, that is way too subtle. Suggest:
NOTE: Callers must assume that userspace was able to open the cdev and
can call cdev fops callbacks at any time, even if this function fails.
I would also add a note to cdev_device_del:
NOTE: This guarantees that associated sysfs callbacks are not running
or runnable, however any open cdevs will remain and their fops remain
callable even after this returns.
Since I have seen a lot of confusion on that point as well..
Jason
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
WARNING: multiple messages have this Message-ID (diff)
From: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
To: Dan Williams <dan.j.williams@intel.com>
Cc: Logan Gunthorpe <logang@deltatee.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Alexander Viro <viro@zeniv.linux.org.uk>,
Johannes Thumshirn <jthumshirn@suse.de>, Jan Kara <jack@suse.cz>,
Arnd Bergmann <arnd@arndb.de>,
Sajjan Vikas C <vikas.cha.sajjan@hpe.com>,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
Linus Walleij <linus.walleij@linaro.org>,
Alexandre Courbot <gnurou@gmail.com>,
Peter Huewe <peterhuewe@gmx.de>,
Marcel Selhorst <tpmdd@selhorst.net>,
Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>,
Olof Johansson <olof@lixom.net>,
Doug Ledford <dledford@redhat.com>,
Sean Hefty <sean.hefty@intel.com>,
Hal Rosenstock <hal.rosenstock@gmail.com>,
Dmitry Vyukov <dvyukov@google.com>,
Haggai Eran <haggaie@mellanox.com>,
Parav Pandit <pandit.parav@gmail.com>,
Leon Romanovsky <leon@kernel.org>,
Hartmut Knaack <knaack.h@gmx.de>,
Lars-Peter Clausen <lars@metafoo.de>,
Peter Meerwald-Stadler <pmeerw@pmeerw.net>,
Hans Verkuil <hans.verkuil@cisco.com>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Artem Bityutskiy <dedekind1@gmail.com>,
Richard Weinberger <richard@nod.at>,
David Woodhouse <dwmw2@infradead.org>,
Brian Norris <computersforpeace@gmail.com>,
Boris Brezillon <boris.brezillon@free-electrons.com>,
Marek Vasut <marek.vasut@gmail.com>,
Cyrille Pitchen <cyrille.pitchen@atmel.com>,
Matt Porter <mporter@kernel.crashing.org>,
Alexandre Bounine <alexandre.bounine@idt.com>,
Andrew Morton <akpm@linux-foundation.org>,
Joe Perches <joe@perches.com>,
Lorenzo Stoakes <lstoakes@gmail.com>,
Vladimir Zapolskiy <vz@mleia.com>,
Alessandro Zummo <a.zummo@towertech.it>,
Alexandre Belloni <alexandre.belloni@free-electrons.com>,
Boaz Harrosh <ooo@electrozaur.com>,
"James E.J. Bottomley" <jejb@linux.vnet.ibm.com>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
Stephen Bates <stephen.bates@microsemi.com>,
Bjorn Helgaas <bhelgaas@google.com>,
linux-pci@vger.kernel.org,
linux-scsi <linux-scsi@vger.kernel.org>,
rtc-linux@googlegroups.com, linux-mtd@lists.infradead.org,
"Linux-media@vger.kernel.org" <linux-media@vger.kernel.org>,
linux-iio@vger.kernel.org, linux-rdma@vger.kernel.org,
linux-gpio@vger.kernel.org, linux-input@vger.kernel.org,
"linux-nvdimm@lists.01.org" <linux-nvdimm@ml01.01.org>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2 01/16] chardev: add helper function to register char devs with a struct device
Date: Mon, 27 Feb 2017 09:56:18 -0700 [thread overview]
Message-ID: <20170227165618.GE5891@obsidianresearch.com> (raw)
In-Reply-To: <CAPcyv4i91_esBtBxbnDH3ZDd8Mnz4HoJEW2yeEvQ4QikFBjapA@mail.gmail.com>
On Sun, Feb 26, 2017 at 10:21:25AM -0800, Dan Williams wrote:
> > + * cdev_device_add() adds the char device represented by @cdev to the system,
> > + * just as cdev_add does. It then adds @dev to the system using device_add
> > + * The dev_t for the char device will be taken from the struct device which
> > + * needs to be initialized first. This helper function correctly takes a
> > + * reference to the parent device so the parent will not get released until
> > + * all references to the cdev are released.
> > + *
> > + * This function should be used whenever the struct cdev and the
> > + * struct device are members of the same structure whose lifetime is
> > + * managed by the struct device.
> > + */
>
> Perhaps add a note here that userspace may have invoked file
> operations between cdev_add() and a failing device_add(), so
> additional cleanup beyond put_device() (like mmap invalidation) might
> be needed. That can be a later follow-on patch.
Yes please, that is way too subtle. Suggest:
NOTE: Callers must assume that userspace was able to open the cdev and
can call cdev fops callbacks at any time, even if this function fails.
I would also add a note to cdev_device_del:
NOTE: This guarantees that associated sysfs callbacks are not running
or runnable, however any open cdevs will remain and their fops remain
callable even after this returns.
Since I have seen a lot of confusion on that point as well..
Jason
WARNING: multiple messages have this Message-ID (diff)
From: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
To: Dan Williams <dan.j.williams@intel.com>
Cc: Logan Gunthorpe <logang@deltatee.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Alexander Viro <viro@zeniv.linux.org.uk>,
Johannes Thumshirn <jthumshirn@suse.de>, Jan Kara <jack@suse.cz>,
Arnd Bergmann <arnd@arndb.de>,
Sajjan Vikas C <vikas.cha.sajjan@hpe.com>,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
Linus Walleij <linus.walleij@linaro.org>,
Alexandre Courbot <gnurou@gmail.com>,
Peter Huewe <peterhuewe@gmx.de>,
Marcel Selhorst <tpmdd@selhorst.net>,
Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>,
Olof Johansson <olof@lixom.net>,
Doug Ledford <dledford@redhat.com>,
Sean Hefty <sean.hefty@intel.com>,
Hal Rosenstock <hal.rosenstock@gmail.com>,
Dmitry Vyukov <dvyukov@google.com>,
Haggai Eran <haggaie@mellanox.com>,
Parav Pandit <pandit.parav@gmail.com>,
Leon Romanovsky <leon@kernel.org>,
Hartmut Knaack <knaack.h@gmx.de>,
Lars-Peter Clausen <lars@metafoo.de>,
Peter Meerwald-Stadler <pmeerw@pmeerw.net>,
Hans Verkuil <hans.verkuil@cisco.com>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Artem Bityutskiy <dedekind1@gmail.com>,
Richard Weinberger <richard@nod.at>,
David Woodhouse <dwmw2@infradead.org>,
Brian Norris <computersforpeace@gmail.com>,
Boris Brezillon <boris.brezillon@free-electrons.com>,
Marek Vasut <marek.vasut@gmail.com>,
Cyrille Pitchen <cyrille.pitchen@atmel.com>,
Matt Porter <mporter@kernel.crashing.org>,
Alexandre Bounine <alexandre.bounine@idt.com>,
Andrew Morton <akpm@linux-foundation.org>,
Joe Perches <joe@perches.com>,
Lorenzo Stoakes <lstoakes@gmail.com>,
Vladimir Zapolskiy <vz@mleia.com>,
Alessandro Zummo <a.zummo@towertech.it>,
Alexandre Belloni <alexandre.belloni@free-electrons.com>,
Boaz Harrosh <ooo@electrozaur.com>,
"James E.J. Bottomley" <jejb@linux.vnet.ibm.com>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
Stephen Bates <stephen.bates@microsemi.com>,
Bjorn Helgaas <bhelgaas@google.com>,
linux-pci@vger.kernel.org,
linux-scsi <linux-scsi@vger.kernel.org>,
rtc-linux@googlegroups.com, linux-mtd@lists.infradead.org,
"Linux-media@vger.kernel.org" <linux-media@vger.kernel.org>,
linux-iio@vger.kernel.org, linux-rdma@vger.kernel.org,
linux-gpio@vger.kernel.org, linux-input@vger.kernel.org,
"linux-nvdimm@lists.01.org" <linux-nvdimm@ml01.01.org>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: [rtc-linux] Re: [PATCH v2 01/16] chardev: add helper function to register char devs with a struct device
Date: Mon, 27 Feb 2017 09:56:18 -0700 [thread overview]
Message-ID: <20170227165618.GE5891@obsidianresearch.com> (raw)
In-Reply-To: <CAPcyv4i91_esBtBxbnDH3ZDd8Mnz4HoJEW2yeEvQ4QikFBjapA@mail.gmail.com>
On Sun, Feb 26, 2017 at 10:21:25AM -0800, Dan Williams wrote:
> > + * cdev_device_add() adds the char device represented by @cdev to the system,
> > + * just as cdev_add does. It then adds @dev to the system using device_add
> > + * The dev_t for the char device will be taken from the struct device which
> > + * needs to be initialized first. This helper function correctly takes a
> > + * reference to the parent device so the parent will not get released until
> > + * all references to the cdev are released.
> > + *
> > + * This function should be used whenever the struct cdev and the
> > + * struct device are members of the same structure whose lifetime is
> > + * managed by the struct device.
> > + */
>
> Perhaps add a note here that userspace may have invoked file
> operations between cdev_add() and a failing device_add(), so
> additional cleanup beyond put_device() (like mmap invalidation) might
> be needed. That can be a later follow-on patch.
Yes please, that is way too subtle. Suggest:
NOTE: Callers must assume that userspace was able to open the cdev and
can call cdev fops callbacks at any time, even if this function fails.
I would also add a note to cdev_device_del:
NOTE: This guarantees that associated sysfs callbacks are not running
or runnable, however any open cdevs will remain and their fops remain
callable even after this returns.
Since I have seen a lot of confusion on that point as well..
Jason
--
You received this message because you are subscribed to "rtc-linux".
Membership options at http://groups.google.com/group/rtc-linux .
Please read http://groups.google.com/group/rtc-linux/web/checklist
before submitting a driver.
---
You received this message because you are subscribed to the Google Groups "rtc-linux" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
WARNING: multiple messages have this Message-ID (diff)
From: Jason Gunthorpe <jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
To: Dan Williams <dan.j.williams-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: Alessandro Zummo
<a.zummo-BfzFCNDTiLLj+vYz1yj4TQ@public.gmane.org>,
Jan Kara <jack-AlSwsSmVLrQ@public.gmane.org>,
linux-iio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Linus Walleij
<linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
Jarkko Sakkinen
<jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
Alexandre Bounine
<alexandre.bounine-49Rm3DX9dRQ@public.gmane.org>,
Alexandre Belloni
<alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
Peter Meerwald-Stadler
<pmeerw-jW+XmwGofnusTnJN9+BGXg@public.gmane.org>,
linux-scsi <linux-scsi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Peter Huewe <peterhuewe-Mmb7MZpHnFY@public.gmane.org>,
Parav Pandit
<pandit.parav-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Sean Hefty <sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
Alexandre Courbot
<gnurou-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Lars-Peter Clausen <lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>,
"James E.J. Bottomley"
<jejb-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>,
rtc-linux-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org,
Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Richard Weinberger <richard-/L3Ra7n9ekc@public.gmane.org>,
Marek Vasut <marek.vasut-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
Hans Verkuil
<hans.verkuil-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>,
Matt P
Subject: Re: [PATCH v2 01/16] chardev: add helper function to register char devs with a struct device
Date: Mon, 27 Feb 2017 09:56:18 -0700 [thread overview]
Message-ID: <20170227165618.GE5891@obsidianresearch.com> (raw)
In-Reply-To: <CAPcyv4i91_esBtBxbnDH3ZDd8Mnz4HoJEW2yeEvQ4QikFBjapA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
On Sun, Feb 26, 2017 at 10:21:25AM -0800, Dan Williams wrote:
> > + * cdev_device_add() adds the char device represented by @cdev to the system,
> > + * just as cdev_add does. It then adds @dev to the system using device_add
> > + * The dev_t for the char device will be taken from the struct device which
> > + * needs to be initialized first. This helper function correctly takes a
> > + * reference to the parent device so the parent will not get released until
> > + * all references to the cdev are released.
> > + *
> > + * This function should be used whenever the struct cdev and the
> > + * struct device are members of the same structure whose lifetime is
> > + * managed by the struct device.
> > + */
>
> Perhaps add a note here that userspace may have invoked file
> operations between cdev_add() and a failing device_add(), so
> additional cleanup beyond put_device() (like mmap invalidation) might
> be needed. That can be a later follow-on patch.
Yes please, that is way too subtle. Suggest:
NOTE: Callers must assume that userspace was able to open the cdev and
can call cdev fops callbacks at any time, even if this function fails.
I would also add a note to cdev_device_del:
NOTE: This guarantees that associated sysfs callbacks are not running
or runnable, however any open cdevs will remain and their fops remain
callable even after this returns.
Since I have seen a lot of confusion on that point as well..
Jason
next prev parent reply other threads:[~2017-02-27 16:56 UTC|newest]
Thread overview: 154+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-26 6:38 [PATCH v2 00/16] Cleanup chardev instances with helper function Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` [rtc-linux] " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
[not found] ` <1488091097-12328-1-git-send-email-logang-OTvnGxWRz7hWk0Htik3J/w@public.gmane.org>
2017-02-26 6:38 ` [PATCH v2 01/16] chardev: add helper function to register char devs with a struct device Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` [rtc-linux] " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
[not found] ` <1488091097-12328-2-git-send-email-logang-OTvnGxWRz7hWk0Htik3J/w@public.gmane.org>
2017-02-26 18:21 ` Dan Williams
2017-02-26 18:21 ` Dan Williams
2017-02-26 18:21 ` [rtc-linux] " Dan Williams
2017-02-26 18:21 ` Dan Williams
2017-02-26 18:21 ` Dan Williams
[not found] ` <CAPcyv4i91_esBtBxbnDH3ZDd8Mnz4HoJEW2yeEvQ4QikFBjapA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-02-27 16:56 ` Jason Gunthorpe [this message]
2017-02-27 16:56 ` Jason Gunthorpe
2017-02-27 16:56 ` [rtc-linux] " Jason Gunthorpe
2017-02-27 16:56 ` Jason Gunthorpe
2017-02-27 16:56 ` Jason Gunthorpe
[not found] ` <20170227165618.GE5891-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-02-28 3:27 ` Logan Gunthorpe
2017-02-28 3:27 ` Logan Gunthorpe
2017-02-28 3:27 ` [rtc-linux] " Logan Gunthorpe
2017-02-28 3:27 ` Logan Gunthorpe
2017-02-28 3:27 ` Logan Gunthorpe
[not found] ` <7df6e57b-531c-1b23-05bf-c368df2d20f3-OTvnGxWRz7hWk0Htik3J/w@public.gmane.org>
2017-02-28 3:36 ` Dan Williams
2017-02-28 3:36 ` Dan Williams
2017-02-28 3:36 ` [rtc-linux] " Dan Williams
2017-02-28 3:36 ` Dan Williams
2017-02-28 3:36 ` Dan Williams
[not found] ` <CAPcyv4jiPE1jK9ubbsAm_ZNMt=S106NCpXD4KPUWpcK9_GEDJA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-02-28 5:31 ` Greg Kroah-Hartman
2017-02-28 5:31 ` Greg Kroah-Hartman
2017-02-28 5:31 ` [rtc-linux] " Greg Kroah-Hartman
2017-02-28 5:31 ` Greg Kroah-Hartman
2017-02-28 5:31 ` Greg Kroah-Hartman
2017-02-27 9:01 ` Hans Verkuil
2017-02-27 9:01 ` Hans Verkuil
2017-02-27 9:01 ` [rtc-linux] " Hans Verkuil
2017-02-27 9:01 ` Hans Verkuil
2017-02-27 9:01 ` Hans Verkuil
2017-02-27 9:47 ` Alexandre Belloni
2017-02-27 9:47 ` Alexandre Belloni
2017-02-27 9:47 ` [rtc-linux] " Alexandre Belloni
2017-02-27 9:47 ` Alexandre Belloni
2017-02-27 9:47 ` Alexandre Belloni
2017-02-26 6:38 ` [PATCH v2 02/16] device-dax: fix cdev leak Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` [rtc-linux] " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
[not found] ` <1488091097-12328-3-git-send-email-logang-OTvnGxWRz7hWk0Htik3J/w@public.gmane.org>
2017-02-26 18:22 ` Dan Williams
2017-02-26 18:22 ` Dan Williams
2017-02-26 18:22 ` [rtc-linux] " Dan Williams
2017-02-26 18:22 ` Dan Williams
2017-02-26 18:22 ` Dan Williams
2017-02-26 6:38 ` [PATCH v2 03/16] device-dax: utilize new cdev_device_add helper function Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` [rtc-linux] " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
[not found] ` <1488091097-12328-4-git-send-email-logang-OTvnGxWRz7hWk0Htik3J/w@public.gmane.org>
2017-02-26 22:31 ` Dan Williams
2017-02-26 22:31 ` Dan Williams
2017-02-26 22:31 ` [rtc-linux] " Dan Williams
2017-02-26 22:31 ` Dan Williams
2017-02-26 22:31 ` Dan Williams
2017-02-26 6:38 ` [PATCH v2 04/16] input: " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` [rtc-linux] " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
[not found] ` <1488091097-12328-5-git-send-email-logang-OTvnGxWRz7hWk0Htik3J/w@public.gmane.org>
2017-02-28 18:27 ` Dmitry Torokhov
2017-02-28 18:27 ` Dmitry Torokhov
2017-02-28 18:27 ` [rtc-linux] " Dmitry Torokhov
2017-02-28 18:27 ` Dmitry Torokhov
2017-02-28 18:27 ` Dmitry Torokhov
2017-02-26 6:38 ` [PATCH v2 05/16] gpiolib: " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` [rtc-linux] " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` [PATCH v2 06/16] tpm-chip: " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` [rtc-linux] " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
[not found] ` <1488091097-12328-7-git-send-email-logang-OTvnGxWRz7hWk0Htik3J/w@public.gmane.org>
2017-02-27 16:42 ` Jason Gunthorpe
2017-02-27 16:42 ` Jason Gunthorpe
2017-02-27 16:42 ` [rtc-linux] " Jason Gunthorpe
2017-02-27 16:42 ` Jason Gunthorpe
2017-02-26 6:38 ` [PATCH v2 07/16] platform/chrome: cros_ec_dev - " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` [rtc-linux] " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` [PATCH v2 08/16] IB/ucm: " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` [rtc-linux] " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` [PATCH v2 09/16] infiniband: utilize the new cdev_set_parent function Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` [rtc-linux] " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` [PATCH v2 10/16] iio:core: utilize new cdev_device_add helper function Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` [rtc-linux] " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` [PATCH v2 11/16] media: " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` [rtc-linux] " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
[not found] ` <1488091097-12328-12-git-send-email-logang-OTvnGxWRz7hWk0Htik3J/w@public.gmane.org>
2017-02-27 9:02 ` Hans Verkuil
2017-02-27 9:02 ` Hans Verkuil
2017-02-27 9:02 ` [rtc-linux] " Hans Verkuil
2017-02-27 9:02 ` Hans Verkuil
2017-02-27 9:02 ` Hans Verkuil
[not found] ` <8eff8408-1681-a59d-3b61-8fd5dab73af1-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
2017-03-04 22:57 ` Logan Gunthorpe
2017-03-04 22:57 ` Logan Gunthorpe
2017-03-04 22:57 ` [rtc-linux] " Logan Gunthorpe
2017-03-04 22:57 ` Logan Gunthorpe
2017-03-04 22:57 ` Logan Gunthorpe
2017-02-26 6:38 ` [PATCH v2 12/16] mtd: " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` [rtc-linux] " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` [PATCH v2 13/16] rapidio: " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` [rtc-linux] " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` [PATCH v2 14/16] rtc: " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` [rtc-linux] " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
[not found] ` <1488091097-12328-15-git-send-email-logang-OTvnGxWRz7hWk0Htik3J/w@public.gmane.org>
2017-02-27 9:46 ` Alexandre Belloni
2017-02-27 9:46 ` Alexandre Belloni
2017-02-27 9:46 ` [rtc-linux] " Alexandre Belloni
2017-02-27 9:46 ` Alexandre Belloni
2017-02-27 9:46 ` Alexandre Belloni
2017-02-26 6:38 ` [PATCH v2 15/16] scsi: " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` [rtc-linux] " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` [PATCH v2 16/16] switchtec: utilize new device_add_cdev " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` [rtc-linux] " Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
2017-02-26 6:38 ` Logan Gunthorpe
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=20170227165618.GE5891@obsidianresearch.com \
--to=jgunthorpe-epgobjl8dl3ta4ec/59zmfatqe2ktcn/@public.gmane.org \
--cc=a.zummo-BfzFCNDTiLLj+vYz1yj4TQ@public.gmane.org \
--cc=alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
--cc=alexandre.bounine-49Rm3DX9dRQ@public.gmane.org \
--cc=dan.j.williams-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=gnurou-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=hans.verkuil-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org \
--cc=jack-AlSwsSmVLrQ@public.gmane.org \
--cc=jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=jejb-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org \
--cc=lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org \
--cc=leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=linux-iio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-scsi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=marek.vasut-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=pandit.parav-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=peterhuewe-Mmb7MZpHnFY@public.gmane.org \
--cc=pmeerw-jW+XmwGofnusTnJN9+BGXg@public.gmane.org \
--cc=richard-/L3Ra7n9ekc@public.gmane.org \
--cc=rtc-linux-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
--cc=sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.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.