> > usb 3-1: new full speed USB device using address 3
> > Oops: kernel access of bad area, sig: 11 [#1]
> For info: reverting this change fixes it. Didn't find out why, yet.
>
>
http://linux.bkbits.net:8080/linux-2.5/diffs/drivers/usb/class/[EMAIL 
PROTECTED]|src/|src/drivers|src/drivers/usb|src/drivers/usb/class|hist/drivers/usb/class/cdc-acm.c

Maybe that's due to this change in drivers/usb/core/message.c:
@@ -1056,8 +1055,20 @@
  /* re-init hc/hcd interface/endpoint state */
  for (i = 0; i < config->desc.bNumInterfaces; i++) {
   struct usb_interface *intf = config->interface[i];
+  struct usb_host_interface *alt;
+
+  alt = usb_altnum_to_altsetting(intf, 0);
+
+  /* No altsetting 0?  We'll assume the first altsetting.
+   * We could use a GetInterface call, but if a device is
+   * so non-compliant that it doesn't have altsetting 0
+   * then I wouldn't trust its reply anyway.
+   */
+  if (!alt)
+   alt = &intf->altsetting[0];

-  intf->act_altsetting = 0;
+  intf->cur_altsetting = alt;
+  intf->act_altsetting = alt - intf->altsetting;
   usb_enable_interface(dev, intf);
  }
  return 0;
If I understand it well, this changes the previous default behaviour;
intf->cur_altsetting will be intf->altsetting[0], like before, only if
there's no intf->altsetting[i].desc.bAlternateSetting == 0.

I'm not sure the change in cdc-acm (which no longer uses index 0
altsetting) is correct. Or is this another bug in my phone (motorola C350)
which should be handled differently than other cdc-acm devices ?
-- 
Colin



-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to