The basic problem here is that the abort isn't recognized as an abort because of the URB status code.
In other words, it's a bug which is attributable to the error-recovery
code in usb-storage. I'm working on a much bigger fix which overhauls the
entire architecture, but Greg KH has indicated that it should all be tested
in 2.5.x and then backported, which is reasonable.
Matt
On Thu, Apr 18, 2002 at 03:12:27PM -0700, David Brownell wrote:
> I forget, didn't you verify that this problem repeated just
> as cleanly using this device in USB 1.1 mode?
>
> I'm recalling this as an issue where the usb-storage
> driver needed to update its error handling, and there
> was no particular "USB 2.0" issue. And at any rate
> the patch is to usb-storage ...
>
> I'm glad that with the patch, you can use another USB 2.0
> device with Linux!
>
> - Dave
>
>
> > >>> Proposed workaround:
> >
> > set us->notify also in cases where the urb returns status DID_ERROR, not
> > only DID_ABORT:
> >
> > patch:
> >
>-----------------------------------------------------------------------------------------------
> >
> > --- usb.c Tue Apr 16 21:17:56 2002
> > +++ usb.c-cm Tue Apr 16 21:16:56 2002
> > @@ -465,7 +465,12 @@
> > US_DEBUGP("scsi cmd done,
> > result=0x%x\n",
> > us->srb->result);
> > set_current_state(TASK_INTERRUPTIBLE);
> > - us->srb->scsi_done(us->srb);
> > +/*05-Apr-02 cm*/
> > + if (us->srb->scsi_done)
> > + us->srb->scsi_done(us->srb);
> > + US_DEBUGP("scsi_done() called\n");
> > + if (us->srb->result == DID_ERROR <<
> > 16) /* scsi_abort may wait here */
> > + complete(&(us->notify));
> > } else {
> > US_DEBUGP("scsi command aborted\n");
> > set_current_state(TASK_INTERRUPTIBLE);
> >
>------------------------------------------------------------------------------------------------
> >
> > Any Comments?
> >
> > I can come around the problem with the patch, but I feel not strong
> > enough to correct this problem the "proper" way.
> >
> > On the other hand I feel that the SCSI command abortion procedure may be
> > broken anyhow when perfomed in the presence of lower layer errors
> > (which may be the cause for the abortion in the first place)
> >
> > What shall we do?
> >
> > Christian
> >
> >
> > PS: I want to keep this neat device "archos jukebox", snice this bug is
> > perfectly reproducible.............
> >
> >
> >
> > --
> > Christian Mahr (privat) [EMAIL PROTECTED]
> >
> >
> >
--
Matthew Dharm Home: [EMAIL PROTECTED]
Maintainer, Linux USB Mass Storage Driver
Sir, for the hundreth time, we do NOT carry 600-round boxes of belt-fed
suction darts!
-- Salesperson to Greg
User Friendly, 12/30/1997
msg05942/pgp00000.pgp
Description: PGP signature
