From owner-FreeBSD-users-jp@jp.FreeBSD.org Wed Nov 17 13:01:46 2004
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) id iAH41kP79391;
	Wed, 17 Nov 2004 13:01:46 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from ybbsmtp07.mail.mci.yahoo.co.jp (ybbsmtp07.mail.mci.yahoo.co.jp [210.80.241.156])
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) with SMTP/inet id iAH41k879386
	for <FreeBSD-users-jp@jp.FreeBSD.org>; Wed, 17 Nov 2004 13:01:46 +0900 (JST)
	(envelope-from simokawa@FreeBSD.org)
Received: from unknown (HELO tora.nunu.org) (nunuorg@219.3.182.80 with login)
  by ybbsmtp07.mail.mci.yahoo.co.jp with SMTP; 17 Nov 2004 04:01:40 -0000
X-Apparently-From: <nunuorg@yahoo.co.jp>
Received: from tora.nunu.org (ns.nunu.org [210.79.14.94])
	by tora.nunu.org (Postfix) with ESMTP id 14C554EAC9
	for <FreeBSD-users-jp@jp.FreeBSD.org>; Wed, 17 Nov 2004 13:03:37 +0900 (JST)
Message-ID: <87hdnp6s12.wl@tora.nunu.org>
From: Hidetoshi Shimokawa <simokawa@FreeBSD.org>
To: FreeBSD-users-jp@jp.FreeBSD.org
In-Reply-To: <20041115.220121.59465459.maro@flu.hn.org>
References: <87is877r6t.wl@tora.nunu.org>
	<87zn24zc4f.wl@tora.nunu.org>
	<20041115.014034.74753069.maro@flu.hn.org>
	<20041115.220121.59465459.maro@flu.hn.org>
User-Agent: Wanderlust/2.10.1 (Watching The Wheels) SEMI/1.14.5 (Awara-Onsen) FLIM/1.14.5 (Demachiyanagi) APEL/10.6 MULE XEmacs/21.4 (patch 14) (Reasonable Discussion) (i386--freebsd)
MIME-Version: 1.0 (generated by SEMI 1.14.5 - "Awara-Onsen")
Content-Type: text/plain; charset=ISO-2022-JP
Reply-To: FreeBSD-users-jp@jp.FreeBSD.org
Precedence: list
Date: Wed, 17 Nov 2004 13:03:37 +0900
X-Sequence: FreeBSD-users-jp 81819
Subject: [FreeBSD-users-jp 81819] Re: removable disk with ehci or firewire
Sender: owner-FreeBSD-users-jp@jp.FreeBSD.org
X-Originator: simokawa@FreeBSD.org
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+041115

$B2<@n$G$9(B.

At Mon, 15 Nov 2004 22:01:21 +0900,
Kazumaro Aoki wrote:
> sbp0:0:0 XPT_SCSI_IO: cmd: 25 00 00 00 00 00 00 00 00 00, flags: 0x40, 10b cmd/8b data/32b sense
> sbp_execute_ocb: seg 1, d8d5a0:8
> sbp0:0:0 sbp_enqueue_ocb: 0x47e93d84
> sbp0:0:0 sbp_orb_pointer: 0x47e93d84
> sbp0:0:0 sbp_orb_pointer_callback
> received address 0x0
> sbp0:0:0 sbp_dequeue_ocb: 0x47e93d84 src 1
> sbp0:0:0 ORB status src:1 resp:0 dead:0 len:1 stat:0 orb:047e93d84
> sbp0:0:0 No additional information to report
> sbp0:0:0:0:XPT_CALC_GEOMETRY: Volume size = 321672960

$B$3$l$,@5$7$$(B volume size $B$N$h$&$G$9$M(B.
(160GB$B$0$i$$$N(BHDD$B$G$9$h$M(B?)

> sbp0:0:0 XPT_SCSI_IO: cmd: 25 00 00 00 00 00 00 00 00 00, flags: 0x40, 10b cmd/8b data/32b sense
> sbp_execute_ocb: seg 1, 3f4230:8
> sbp0:0:0 sbp_enqueue_ocb: 0x47e9328c
> sbp0:0:0 sbp_orb_pointer: 0x47e9328c
> sbp0:0:0 sbp_orb_pointer_callback
> received address 0x0
> sbp0:0:0 sbp_dequeue_ocb: 0x47e9328c src 1
> sbp0:0:0 ORB status src:1 resp:0 dead:0 len:1 stat:0 orb:047e9328c
> sbp0:0:0 No additional information to report
> sbp0:0:0:0:XPT_CALC_GEOMETRY: Volume size = 1510276928

ORB status $B$r8+$k8B$j$O(B, capacity $B$r<hF@$9$k$H$-$K(B HDD $B$+$i$N(B error
$B$ODLCN$5$l$F$$$^$;$s$,(B, $BJQ$J(B volume size $B$,JV$C$F$-$F$$$^$9$M(B.
HDD$B$+$iJV$C$F$-$?(B capacity $B$N(B data $B$O(B CAM$BEy$r7PM3$7$F(B, $B:F$S(B sbp
$B$KLa$C$F$-$F(B, geometry $B$N7W;;$r9T$J$$$^$9$N$G(B, $B$=$NESCf$G(B
$BJQ$J%4%_$r>e=q$-$5$l$F$$$k2DG=@-$OH]Dj$G$-$^$;$s$,(B, $B$*$=$i$/(B
HDD$B$,JQ$JCM$rJV$7$F$$$k$N$@$H;W$$$^$9(B.
$B$=$&$@$H$9$k$H(B, $B7k9=$I$&$7$h$&$b$J$$$H;W$&$N$G$9$,(B, $B2<5-$N(B patch
$B$G(B panic $B$OKI$2$k$+$b$7$l$^$;$s(B. $B$*;n$72<$5$$(B.

/\ Hidetoshi Shimokawa
\/  simokawa@FreeBSD.org

Index: sbp.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/firewire/sbp.c,v
retrieving revision 1.79
diff -u -r1.79 sbp.c
--- sbp.c	20 Jul 2004 04:49:44 -0000	1.79
+++ sbp.c	17 Nov 2004 03:55:14 -0000
@@ -2450,8 +2450,9 @@
 #endif
 
 		ccg = &ccb->ccg;
-		if (ccg->block_size == 0) {
-			printf("sbp_action1: block_size is 0.\n");
+		if (ccg->block_size == 0 || ccg->block_size > 1024*1024) {
+			printf("sbp_action1: invalid block_size %ud.\n",
+			    ccg->block_size);
 			ccb->ccb_h.status = CAM_REQ_INVALID;
 			xpt_done(ccb);
 			break;

