From owner-FreeBSD-users-jp@jp.FreeBSD.org Fri Jul  6 01:31:24 2007
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) id l65GVOf87868;
	Fri, 6 Jul 2007 01:31:24 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from sana.init-main.com ([2001:240:28::1])
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) with ESMTP/inet6 id l65GVOB87862
	for <freebsd-users-jp@jp.freebsd.org>; Fri, 6 Jul 2007 01:31:24 +0900 (JST)
	(envelope-from takawata@init-main.com)
Received: from ns.init-main.com (localhost [127.0.0.1])
	by sana.init-main.com (8.14.1/8.13.8) with ESMTP id l65GRL5Z051627
	for <freebsd-users-jp@jp.freebsd.org>; Fri, 6 Jul 2007 01:27:21 +0900 (JST)
	(envelope-from takawata@ns.init-main.com)
Message-Id: <200707051627.l65GRL5Z051627@sana.init-main.com>
To: freebsd-users-jp@jp.FreeBSD.org
From: Takanori Watanabe <takawata@init-main.com>
Reply-To: FreeBSD-users-jp@jp.FreeBSD.org
Precedence: list
Date: Fri, 06 Jul 2007 01:27:21 +0900
X-Sequence: FreeBSD-users-jp 90799
Subject: [FreeBSD-users-jp 90799] ufoma panic anyone?
Sender: owner-FreeBSD-users-jp@jp.FreeBSD.org
X-Originator: takawata@init-main.com
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+060209

$BEOJU$G$9!#(B

$B4N?4$NCf?H$rK:$l$F$^$7$?!#(B

Index: ufoma.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/usb/ufoma.c,v
retrieving revision 1.8
diff -u -r1.8 ufoma.c
--- ufoma.c	18 Jun 2007 22:27:56 -0000	1.8
+++ ufoma.c	5 Jul 2007 15:36:18 -0000
@@ -376,7 +376,9 @@
 	}
 	printf("\n");
 
-	if(mad->bType == UMCPC_ACM_TYPE_AB5){
+	if((mad->bType == UMCPC_ACM_TYPE_AB5)
+	   ||(mad->bType == UMCPC_ACM_TYPE_AB6)){
+		/*These does not have data interface*/
 		sc->sc_is_ucom = 0;
 		ufoma_init_pseudo_ucom(sc);
 	}else{
@@ -946,12 +948,14 @@
 
 	sc->sc_is_ucom = 1;
 	cmd = ufoma_get_intconf(cd, id, UDESC_CS_INTERFACE, UDESCSUB_CDC_CM);
+	if(cmd == NULL)
+		return -1;
 	sc->sc_cm_cap = cmd->bmCapabilities;
 	acm = ufoma_get_intconf(cd, id, UDESC_CS_INTERFACE, UDESCSUB_CDC_ACM);
+	if(acm == NULL)
+		return -1;
 	sc->sc_acm_cap = acm->bmCapabilities;
 	
-	if(cmd == NULL)
-		return -1;
 	sc->sc_data_iface_no = cmd->bDataInterface;
 	printf("%s: data interface %d, has %sCM over data, has %sbreak\n",
 	    devname, sc->sc_data_iface_no,
