<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML DIR=ltr><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"></HEAD><BODY><DIV><FONT face='Arial' color=#000000 size=2>Hi,</FONT></DIV>
<DIV><FONT face=Arial color=#000000 size=2></FONT> </DIV>
<DIV><FONT face=Arial color=#000000 size=2>We have a problem with the
usb-lowlevel and/or usb-storage
components.<BR>OS Montavista
Preview Linux 2.4.20<BR>Processor PPC440EP</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial color=#000000 size=2>We use an USB disc-on-chip quite
heavily to store data from many threads (about 17).<BR>The problem is that
sometimes all threads/apps that use the usb device hangs (forever) waiting
for disc access, and the CPU load goes down to 0.</FONT></DIV>
<DIV><FONT face=Arial color=#000000 size=2><BR>We have located the hanging to
wait_for_completion() in command_abort() in scsiglue.c.<BR>Since this is an
error handling function, it might either be a bug in it, or that which caused
the error to happen is the problem. The hanging happens every time the
command_abort() is run.<BR>Perhaps it's the scsi timeout of 30 sec, since so
many threads are running...?</FONT></DIV><FONT face=Arial color=#000000 size=2>
<DIV><BR>I wonder if someone have encountered this problem, solved it, found
patches, or if someone knows of fixes that are currently in the 2.6 kernel for
this processor that solves the problem.</DIV>
<DIV> </DIV>
<DIV><BR>Some files involved:</DIV>
<DIV> </DIV>
<DIV>drivers/usb/usb-ocp-ohci.c <BR>drivers/usb/usb.c</DIV>
<DIV>drivers/usb/storage/scsiglue.c<BR>drivers/usb/storage/scsi_error.c</DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>/Ronnie Hedlund</FONT></DIV></BODY></HTML>