<!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>&nbsp;</DIV>
<DIV><FONT face=Arial color=#000000 size=2>We have a problem with the 
usb-lowlevel and/or usb-storage 
components.<BR>OS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Montavista 
Preview Linux 2.4.20<BR>Processor PPC440EP</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</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&nbsp;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>&nbsp;</DIV>
<DIV><BR>Some files involved:</DIV>
<DIV>&nbsp;</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>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>/Ronnie Hedlund</FONT></DIV></BODY></HTML>