Date: Wed, 14 Jan 1998 12:05:27 +0900 (JST) From: sakamoto@hlla.is.tsukuba.ac.jp To: FreeBSD-gnats-submit@FreeBSD.ORG Subject: i386/5493: kernel freeze when I access CD-ROM Message-ID: <199801140305.MAA20385@pulse.hlla.is.tsukuba.ac.jp>
index | next in thread | raw e-mail
>Number: 5493
>Category: i386
>Synopsis: kernel freeze when I access CD-ROM
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Thu Jan 15 00:51:13 PST 1998
>Last-Modified:
>Originator: Hideki SAKAMOTO
>Organization:
Univ. of Tsukuba, Japan
>Release: FreeBSD 2.2.5-RELEASE i386
>Environment:
Machine: DEC HiNote Ultra II
SCSI-adapter: adaptec AHA-1460
CD-ROM: Pioneer 24x CD-ROM
>Description:
When I access CD-DA via xcdplayer/workman ports, kernel freeze with:
cd0:(aic0:6:0) ILLEGAL REQUEST asc:64,0 Illegal mode for this track
cd0:time out
aic:invalid reselect(idbit=0x40)
aic at line 2241:identify failed
messages. And when I access CD-DA via tosha, kernel shift to ddb
mode with:
aic at line 2393: SCSI-FIFO didn't drain
message.
>How-To-Repeat:
Run xcdplayer, workman, or tosha on my machine:-).
>Fix:
Apply these patches.
---BEGIN---
--- /usr/src/sys/i386/isa/aic6360.c.orig Wed Jan 14 11:37:54 1998
+++ /usr/src/sys/i386/isa/aic6360.c Wed Jan 14 11:40:48 1998
@@ -2223,8 +2223,10 @@
/* Wait for SCSI FIFO to drain */
LOGLINE(aic);
do {
+ DELAY(100);
sstat2 = inb(SSTAT2);
} while (!(sstat2 & SEMPTY) && !(inb(DMASTAT) & INTSTAT));
+ DELAY(100);
if (!(inb(SSTAT2) & SEMPTY)) {
printf("aic at line %d: SCSI-FIFO didn't drain\n",
__LINE__);
--- /usr/src/sys/scsi/cd.c.orig Mon Jan 12 04:02:53 1998
+++ /usr/src/sys/scsi/cd.c Mon Jan 12 05:07:15 1998
@@ -543,7 +543,7 @@
(u_char *) bp->b_un.b_addr,
bp->b_bcount,
CDRETRIES,
- 30000,
+ 300000, /* sakamoto */
bp,
flags | ((bp->b_flags & B_READ) ?
SCSI_DATA_IN : SCSI_DATA_OUT))
@@ -1125,7 +1125,7 @@
(u_char *) & rdcap,
sizeof(rdcap),
CDRETRIES,
- 20000, /* might be a disk-changer */
+ 200000, /* might be a disk-changer */ /* sakamoto */
NULL,
SCSI_DATA_IN | flags) != 0) {
return (0);
@@ -1173,7 +1173,7 @@
(u_char *) data,
sizeof(*data),
CDRETRIES,
- 20000, /* should be immed */
+ 200000, /* should be immed */ /* sakamoto */
NULL,
SCSI_DATA_IN);
return (retval);
@@ -1206,7 +1206,7 @@
(u_char *) data,
sizeof(*data),
CDRETRIES,
- 20000, /* should be immed */
+ 200000, /* should be immed */ /* sakamoto */
NULL,
SCSI_DATA_OUT));
}
@@ -1234,7 +1234,7 @@
0,
0,
CDRETRIES,
- 200000, /* should be immed */
+ 2000000, /* should be immed */ /* sakamoto */
NULL,
0));
}
@@ -1265,7 +1265,7 @@
0,
0,
CDRETRIES,
- 20000, /* should be immed */
+ 200000, /* should be immed */ /* sakamoto */
NULL,
0));
}
@@ -1292,7 +1292,7 @@
0,
0,
CDRETRIES,
- 20000, /* should be immed */
+ 200000, /* should be immed */ /* sakamoto */
NULL,
0));
}
@@ -1321,7 +1321,7 @@
0,
0,
CDRETRIES,
- 2000,
+ 20000, /* sakamoto */
NULL,
0));
}
@@ -1345,7 +1345,7 @@
0,
0,
CDRETRIES,
- 2000,
+ 20000, /* sakamoto */
NULL,
0));
}
@@ -1388,7 +1388,7 @@
(u_char *) data,
len,
CDRETRIES,
- 5000,
+ 50000, /* sakamoto */
NULL,
SCSI_DATA_IN));
}
@@ -1423,7 +1423,7 @@
(u_char *) data,
len,
CDRETRIES,
- 5000,
+ 50000, /* sakamoto */
NULL,
SCSI_DATA_IN));
}
---END---
>Audit-Trail:
>Unformatted:
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199801140305.MAA20385>
