On Tue, 13 Jul 2004, Jesse Stockall wrote:

> > The problem shows up clearly in your "dmesg" file; something is calling 
> > usb_unlock_device() without calling usb_lock_device() first.  
> > Unfortunately the diagnostic patch didn't include a dump_stack() call in 
> > usb_unlock_device(), so I can't tell who the guilty party is.
> > 
> > Here's a shorter patch for you to try.  It ought to pinpoint the culprit.  
> > This is probably some stupid mistake on my part that will end up being
> > obvious, but I just can't see where it is...
> 
> Here is the end of dmesg (the whole log is attached:

This extract from your log shows where the problem first occurs:

usb_unlock_device: udev=f7fd4a00 count=1
 [<c02504da>] usb_unlock_device+0x3a/0x70
 [<c02536a9>] hub_port_connect_change+0x219/0x4f0
 [<c0253dc2>] hub_events+0x442/0x4d0
 [<c0253e85>] hub_thread+0x35/0x130
 [<c0117a00>] autoremove_wake_function+0x0/0x60
 [<c0103f5e>] ret_from_fork+0x6/0x14
 [<c0117a00>] autoremove_wake_function+0x0/0x60
 [<c0253e50>] hub_thread+0x0/0x130
 [<c0102291>] kernel_thread_helper+0x5/0x14

It's the first place to mention udev=f7fd4a00; that device is unlocked 
without getting locked beforehand.

The extract shows usb_unlock_device() being called from
hub_port_connect_change() -- or, just possibly, called as a tail-recursion
by a subroutine of hub_port_connect_change().  Now, in my patched source
neither hub_port_connect_change() nor its subroutines calls
usb_unlock_device().  This suggests our sources have gotten out of sync.

In a separate email (off-list) I'll send you my copy of 
drivers/usb/core/hub.c.  Can you compare it with your copy and send the 
results of a diff -u ?

Alan Stern




-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to