On Sat, Oct 06, 2001 at 06:48:50PM -0700, Greg KH wrote:
> On Tue, Oct 02, 2001 at 05:41:59PM -0400, Pete Zaitcev wrote:
> > > From: Greg KH <[EMAIL PROTECTED]>
> > > To: [EMAIL PROTECTED]
> > > Date: Mon, 1 Oct 2001 11:37:50 -0700
> > 
> > >  hub.c                  |   78 
> > >  hub.h                  |   17 
> > 
> > The bulk of it is my semaphore that Alan adopted. Linus swore
> > like a sailor when he saw it, so it did not go in.
> 
> Why did he object to it?  It seems to fix a real problem.

My fix rides makes disconnects from PCI and khubd operations
exclusive, this prevents oops when khubd does something and
a disconnect pulls structures from under it. It is reproducible
trivially on SMP with slab poisoning in Linus tree. I think the
guy who had recent oops with XFS was hit by the same thing,
only XFS "poisoned" his pointers with its own data. Perhaps
XFS has some structure that has the same size as one of ours,
so kmalloc put them into same slab.

Linus's approach is to have all data structures reference
counted instead. This way we would be able to drop large
scale locks. JE added refcounting to bus and added bus_put,
bus_get, but it was not enough. It needs more work.

Linus was very upset that I masked the problem instead
of fixing it. Guilty as charged - my task is to have Red Hat
kernel working, and I basically swim in bugs. So I am very
inclined to use band-aid.

-- Pete

_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to