svn commit: r206305 - stable/8/sys/dev/usb/serial
Andrew Thompson
thompsa at FreeBSD.org
Tue Apr 6 23:22:20 UTC 2010
Author: thompsa
Date: Tue Apr 6 23:22:19 2010
New Revision: 206305
URL: http://svn.freebsd.org/changeset/base/206305
Log:
MFC r203903
Make umodem more tolerant for devices which modem descriptors are misplaced.
Reported by: Erick Wales
Submitted by: Hans Petter Selasky
Modified:
stable/8/sys/dev/usb/serial/umodem.c
Directory Properties:
stable/8/sys/ (props changed)
stable/8/sys/amd64/include/xen/ (props changed)
stable/8/sys/cddl/contrib/opensolaris/ (props changed)
stable/8/sys/contrib/dev/acpica/ (props changed)
stable/8/sys/contrib/pf/ (props changed)
stable/8/sys/dev/xen/xenpci/ (props changed)
Modified: stable/8/sys/dev/usb/serial/umodem.c
==============================================================================
--- stable/8/sys/dev/usb/serial/umodem.c Tue Apr 6 23:21:54 2010 (r206304)
+++ stable/8/sys/dev/usb/serial/umodem.c Tue Apr 6 23:22:19 2010 (r206305)
@@ -312,11 +312,16 @@ umodem_attach(device_t dev)
0 - 1, UDESCSUB_CDC_UNION, 0 - 1);
if ((cud == NULL) || (cud->bLength < sizeof(*cud))) {
- device_printf(dev, "no CM or union descriptor\n");
- goto detach;
+ device_printf(dev, "Missing descriptor. "
+ "Assuming data interface is next.\n");
+ if (sc->sc_ctrl_iface_no == 0xFF)
+ goto detach;
+ else
+ sc->sc_data_iface_no =
+ sc->sc_ctrl_iface_no + 1;
+ } else {
+ sc->sc_data_iface_no = cud->bSlaveInterface[0];
}
-
- sc->sc_data_iface_no = cud->bSlaveInterface[0];
} else {
sc->sc_data_iface_no = cmd->bDataInterface;
}
More information about the svn-src-stable-8
mailing list