public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Tejun Heo <htejun@gmail.com>
To: Chris Rankin <rankincj@yahoo.com>
Cc: Alan Stern <stern@rowland.harvard.edu>,
	linux-usb-devel@lists.sourceforge.net,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Greg K-H <greg@kroah.com>,
	maneesh@in.ibm.com, Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	"cornelia.huck@de.ibm.com >> Cornelia Huck" 
	<cornelia.huck@de.ibm.com>
Subject: Re: [linux-usb-devel] Bug creating USB endpoints in 2.6.20.x (kernel bug 8198)
Date: Wed, 09 May 2007 16:11:46 +0200	[thread overview]
Message-ID: <4641D6A2.8070406@gmail.com> (raw)
In-Reply-To: <691707.19263.qm@web52910.mail.re2.yahoo.com>

Chris Rankin wrote:
> --- Tejun Heo <htejun@gmail.com> wrote:
>> Okay, here's a half-assed fix.  With this patch applied, if you try to
>> unload a module while you're opening it's dev attribute, kernel will
>> oops later when the file is accessed or closed later but it should fix
>> the bug winecfg triggers.  I really dunno how to fix this the right way
>> in the stable kernel.  Better ideas?  Anyone?
> 
> How about a WARN() and a small(?) memory leak? Better than an oops, surely?

Device node creation/deletion can be quite often depending on
configuration, so I don't think we can afford memory leak here.  It can
develop into a big problem for long running hosts.  IMHO, just
introducing module unload/deletion race is much better.  It's the lesser
evil, difficult to trigger and already broken in other places anyway.

I think we need to hear what other people are thinking about it.  Cc'ing
Maneesh, Dmitry and Cornelia.  The whole thread can be read at...

  http://thread.gmane.org/gmane.linux.usb.devel/53559
  http://thread.gmane.org/gmane.linux.usb.devel/53846

The thread is rather long but just reading the message from the second
URL should be enough.  The problem is that dev->devt_attr (class dev has
the same problem) is deallocated when the device is deleted.  If the dev
sysfs attribute has users at that point, the dev sysfs node is left with
garbled struct attribute causing oops later.

IMHO, the proper fix for this is immediate-disconnect which is no in -mm
as the problem is caused by expecting immediate-disconnect behavior when
it isn't implemented.

As written above, I think it's better to risk module unload / sysfs race
than keeping the current sysfs deletion / open race.  What do you guys
think?

Thanks.

-- 
tejun

  reply	other threads:[~2007-05-09 14:12 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <963898.10047.qm@web52906.mail.re2.yahoo.com>
2007-05-09  9:40 ` [linux-usb-devel] Bug creating USB endpoints in 2.6.20.x (kernel bug 8198) Tejun Heo
2007-05-09 12:24   ` Chris Rankin
2007-05-09 13:30     ` Tejun Heo
2007-05-09 13:56       ` Chris Rankin
2007-05-09 14:11         ` Tejun Heo [this message]
2007-05-09 14:35           ` Dmitry Torokhov
2007-05-09 14:58             ` Tejun Heo
2007-05-09 21:09               ` Chris Rankin
2007-05-09 14:57       ` Greg KH
2007-05-09 15:01         ` Tejun Heo
2007-05-09 15:40           ` Greg KH
2007-05-10 14:45             ` [PATCH] driver-core: don't free devt_attr till the device is released Tejun Heo
2007-05-10 15:05               ` Greg KH
2007-05-10 15:13                 ` Tejun Heo
2007-05-10 15:17                   ` Greg KH
2007-05-10 15:33               ` Kay Sievers
2007-05-10 15:41                 ` Tejun Heo
2007-05-10 15:52               ` Alan Stern
2007-05-10 16:18                 ` Tejun Heo
2007-05-10 14:25         ` [PATCH 2.6.21-mm2] driver-core: make devt_attr and uevent_attr static Tejun Heo

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=4641D6A2.8070406@gmail.com \
    --to=htejun@gmail.com \
    --cc=cornelia.huck@de.ibm.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=greg@kroah.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb-devel@lists.sourceforge.net \
    --cc=maneesh@in.ibm.com \
    --cc=rankincj@yahoo.com \
    --cc=stern@rowland.harvard.edu \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox