On Thu, 3 Jun 2004 12:07:50 -0700
Greg KH <[EMAIL PROTECTED]> wrote:

> On Thu, Jun 03, 2004 at 02:05:42PM -0400, Alan Stern wrote:
> > 
> > Greg, I'm afraid the patch from Vojtech has to be reverted.
> 
> I agree.  I've just done that, thanks.

I'm surprised that nobody noticed that the patch originates with Dell
people hitting a problem with Red Hat (on 2.4), and we discussed it
on the list.

It is definitely needed for 2.4 in Red Hat, however I tried to turn
it down for generic code even though it's not my area and Matt and Alan
didn't have a problem with it. The problem comes about because
Red Hat installer tries to optimize things and probes something
in parallel, so when it runs updfstab it can overlap with normal
accesses and devices choke. I assumed that SuSE was not affected,
but apparently they were, or why else Vojtech became involved.

I raised the question of applicability to 2.6 and the concensus was
that control queueing in uhci-hcd takes care of it. Now it seems that
it doesn't, is this accurate? Vojtech, did you actually see the
failure on 2.6, or it's just speculation by Gary & Santosh @Dell?

-- Pete

P.S.

Check this for the reference (unfortunately, limited to Dell Group):
 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=120894

Synopsys: Bootup stalls indefinately with 2 empty USB cdroms attached
Reporter: Gary Lerhaupt (gary_lerhaupt dell.com)

--- Comment #4:
It appears that two threads are accessing the device at the same 
time, and the following sequence occurs:

READ_TOC CBW to bulk pipe

GET_DESCRIPTOR to pipe 0 (from a different thread)

attempt to read READ_TOC data from bulk pipe--stalls

driver attempts to do CLEAR_FEATURE to clear stall, but submit_urb 
fails because there's already an URB going on pipe 0 (the 
GET_DESCRIPTOR)

driver attempts to read CSW (never mind that it couldn't clear the 
stall)--gets NAK because pipe still stalled

driver attempts to do CLEAR_FEATURE to clear stall, but submit_urb 
fails because there's already an URB going on pipe 0 (still the 
GET_DESCRIPTOR)

i think the driver attempts to get the CSW again, fails in the same 
way

continuous READ_TOC commands (all of which get NAKed) appear on USB 
bus, along with attempts to read the GET_DESCRIPTOR data (which are 
also NAKed)


I'm not totally sure how this is supposed to work, but this is 
obviously wrong.  One of the following things has to happen, I think:

(1) the CLEAR_FEATURE has to be retried or queued until pipe 0 is 
free if usb_stor_Bulk_transport has to clear a stall
(2) the usb driver shouldn't let any other thread put commands like 
GET_DESCRIPTOR on pipe zero from the time that usb-storage puts out a 
CBW until the time that the CSW is read
(3) the CLEAR_FEATURE should go out on pipe 0 to replace the 
GET_DESCRIPTOR, and the GET_DESCRIPTOR should be retried later (this 
doeesn't sound like a good idea to me, though)

Any thoughts?
---- End comment


-------------------------------------------------------
This SF.Net email is sponsored by the new InstallShield X.
>From Windows to Linux, servers to mobile, InstallShield X is the one
installation-authoring solution that does it all. Learn more and
evaluate today! http://www.installshield.com/Dev2Dev/0504
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to