Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Apr 2010 23:22:19 +0000 (UTC)
From:      Andrew Thompson <thompsa@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
Subject:   svn commit: r206305 - stable/8/sys/dev/usb/serial
Message-ID:  <201004062322.o36NMJVN012160@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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;
 	}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201004062322.o36NMJVN012160>