From: Greg KH <gregkh@suse.de>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
Oliver Neukum <oliver@neukum.org>,
stable@kernel.org, Rickard Bellini <rickard.bellini@ericsson.com>,
"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
Torgny Johansson <torgny.johansson@ericsson.com>,
Kernel development list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] Driver core: fix race in dev_driver_string
Date: Fri, 4 Dec 2009 16:35:33 -0800 [thread overview]
Message-ID: <20091205003533.GD8792@suse.de> (raw)
In-Reply-To: <Pine.LNX.4.44L0.0912041844450.5593-100000@netrider.rowland.org>
On Fri, Dec 04, 2009 at 06:50:35PM -0500, Alan Stern wrote:
> On Fri, 4 Dec 2009, Dmitry Torokhov wrote:
>
> > > Maybe reference counting is inelegant; it depends on your point of
> > > view. Can you think of a more elegant way to make sure that a pointer
> > > isn't stale?
> >
> > Yes, just say "no" to device_create() and friends.
>
> device_create() wasn't used in the case Oliver is discussing.
It was implied, as you had a pointer to the device, not the device
itself.
> > Embed device structure in
> > yours,
>
> You can't do that when the device structure wasn't created by your
> driver.
But for USB devices, it is part of the device you are handed. Same goes
for PCI devices, and most other types of drivers, right?
> > be mindful of lifetime rules and only use "your" device (i.e device
> > bound to your driver).
>
> What do you mean by "use"? In Oliver's case he wasn't using the
> device, he was using the device structure. (Maybe that's what you
> meant.)
I think that is what is meant here.
> And he wanted to use it at a time when it wasn't bound to his
> driver, because userspace still had an open file reference to it.
> There isn't really any way around this.
But you still have a valid device, just not maybe a driver bound to it.
> > This way, as long as your refcount your instance you
> > can rest assured the device structure is there as well.
>
> I rather think that a simple device_get() and device_put() is easier
> than trying to follow a bunch of rules, especially in cases where they
> don't apply! :-)
Like here :)
thanks,
greg k-h
next prev parent reply other threads:[~2009-12-05 0:39 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20091204044337.GE14819@suse.de>
2009-12-04 16:06 ` [PATCH] Driver core: fix race in dev_driver_string Alan Stern
2009-12-04 16:16 ` Oliver Neukum
2009-12-04 16:50 ` Greg KH
2009-12-04 19:55 ` Oliver Neukum
2009-12-04 20:57 ` Alan Stern
2009-12-04 21:18 ` Oliver Neukum
2009-12-04 21:36 ` Alan Stern
2009-12-04 21:58 ` Oliver Neukum
2009-12-04 22:07 ` Alan Stern
2009-12-04 22:23 ` Dmitry Torokhov
2009-12-04 23:50 ` Alan Stern
2009-12-05 0:35 ` Greg KH [this message]
2009-12-05 2:37 ` Alan Stern
2009-12-05 0:33 ` Greg KH
2009-12-04 16:57 ` Alan Stern
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=20091205003533.GD8792@suse.de \
--to=gregkh@suse.de \
--cc=dmitry.torokhov@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=oliver@neukum.org \
--cc=rickard.bellini@ericsson.com \
--cc=stable@kernel.org \
--cc=stern@rowland.harvard.edu \
--cc=torgny.johansson@ericsson.com \
/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.