Re: [linux-usb-devel] Bug creating USB endpoints in 2.6.20.x(kernel bug 8198)

From: Greg KH
Date: Wed May 09 2007 - 12:13:40 EST


On Wed, May 09, 2007 at 05:01:25PM +0200, Tejun Heo wrote:
> Greg KH wrote:
> > On Wed, May 09, 2007 at 03:30:41PM +0200, Tejun Heo wrote:
> >> Chris Rankin wrote:
> >>> --- Tejun Heo <htejun@xxxxxxxxx> wrote:
> >>>> So, we can fix the problem Chris is seeing by breaking module unload (by
> >>>> allowing it to unload too early). It doesn't sound too hot but module
> >>>> unloading race is much less likely than sysfs node deletion/open race.
> >>> Yikes! Just temporary breakage, I hope :-)!! The only modules I unload on a regular basis these
> >>> days are things like "microcode", which the init scripts take care of as part of the boot-up
> >>> process.
> >> 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?
> >
> > This looks like the correct fix, the only reason I made this dynamic was
> > to properly set up the module owner. And now that you have removed that
> > link in your sysfs rework, it can go and become static again.
> >
> > Oh, and this isn't a "device node", it's just a text file that contains
> > the major:minor number for a device node to be created from.
> >
> > So, care to fix up the class code too and send a patch with a
> > signed-off-by:?
>
> I think the proper fix for -stable is to free the structure in
> device_release(). I asked Chris to test it. After he confirms, I'll
> send a proper patch with S-O-B.

Ah, yes, that's the correct fix for this.

thanks,

greg k-h
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/