Skip site navigation (1)Skip section navigation (2)
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>

next in thread | raw e-mail | index | archive | help

>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:



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