That could be the problem... I've also been meaning to take a look at the clear_halt code in 2.4.xx -- there was a 2.5 bug where we couldn't clear endpoint halts because of a change in the core logic.
Matt On Wed, Feb 26, 2003 at 10:03:41AM -0500, Alan Stern wrote: > On Wed, 26 Feb 2003, Oliver Graf wrote: > > > Hi! > > > > On Thu, Feb 20, 2003 at 10:30:37PM +0100, Oliver Graf wrote: > > > The problem: a multi device usb card reader is correctly detected with > > > its four subdevices with kernel 2.4.19(-acX). But any patch after this > > > fails to detect the subdevices. > > > > > > Verbose output with 2.4.19-ac4 shows: > > > usb-storage: GetMaxLUN command result is 1, data is 3 > > > > > > 2.4.21-pre4 gives: > > > usb-storage: GetMaxLUN command result is -32, data is 128 > > > usb-storage: clearing endpoint halt for pipe 0x80000880 > > > > > > I tried to find the parts that changed between the version, but it seems > > > not to be rooted in usb-storage. > > > > > > The call to usb_control_msg seems to timeout with the newer kernel > > > (just a wild guess!). > > There was a change introduced around the time of 2.4.19-acX in the > usb_stor_Bulk_max_lun() routine, and the change had a bug in it. I don't > know if that bug was the source of Oliver's problem, but it is certainly > possible. Here is a patch to fix the bug. > > Alan Stern > > > --- usb-2.4/drivers/usb/storage/transport.c.orig Wed Feb 26 09:54:43 2003 > +++ usb-2.4/drivers/usb/storage/transport.c Wed Feb 26 09:55:23 2003 > @@ -1054,7 +1054,7 @@ > US_BULK_GET_MAX_LUN, > USB_DIR_IN | USB_TYPE_CLASS | > USB_RECIP_INTERFACE, > - 0, us->ifnum, data, sizeof(data), HZ); > + 0, us->ifnum, data, sizeof(*data), HZ); > > US_DEBUGP("GetMaxLUN command result is %d, data is %d\n", > result, *data); -- Matthew Dharm Home: [EMAIL PROTECTED] Maintainer, Linux USB Mass Storage Driver DP: And judging from the scores, Stef has the sma... T: LET'S NOT GO THERE! -- Dust Puppy and Tanya User Friendly, 12/11/1997
pgp00000.pgp
Description: PGP signature