> > Are you using an invalid endpoint? You're right, MxPS is not zero in
> > any of those, but since it parsed alright, there's no reason why
> > dev->exmaxpacketin/out should be 0.
> 
> It is not clear at all why dev->epmaxpacketin/out should be
> anything but 0. This array is never initialized as far as
> I can see.

There's a memset in usb_alloc_dev(), and values there get
re-initialized when setting configurations, such as in the
usb_new_device() code, or altsettings, as you noted later.


> More precisely, the value for endpoint 0 is set in
> usb_new_device(). Values for other endpoints only in
> usb_set_maxpacket() [which has the comment "hub-only!!"].

Point of comment is that it'd be an error for device drivers to
call this, it's internal to usbcore.  And in fact it isn't even exported
so that driver modules could call it.

There's a separate issue that any URBs pending to endpoints
affected by SET_INTERFACE or SET_CONFIGURATION calls
should actually be terminated before those calls get made.

For example, endpoint 4-out could vanish entirely in the new
device setup, or change from iso to bulk.  Fixing that issue
(nuking such URBs before changing device setup) requires
updates in the host controller driver APIs.

- Dave



_______________________________________________________________

Have big pipes? SourceForge.net is looking for download mirrors. We supply
the hardware. You get the recognition. Email Us: [EMAIL PROTECTED]
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to