Date: Mon, 1 Dec 1997 10:59:22 +0900 (JST) From: junichi@astec.co.jp To: FreeBSD-gnats-submit@FreeBSD.ORG Subject: i386/5183: ATAPI driver bug Message-ID: <199712010159.KAA00458@mqh-note.astec.co.jp> Resent-Message-ID: <199712010200.SAA21716@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 5183
>Category: i386
>Synopsis: The ATAPI I/O is blocked.
>Confidential: yes
>Severity: serious
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Sun Nov 30 18:00:00 PST 1997
>Last-Modified:
>Originator: Junichi Satoh
>Organization:
>Release: FreeBSD 3.0-CURRENT i386
>Environment:
FreeBSD 3.0-CURRENT i386
and
FreeBSD 2.2.5-RELEASE i386
>Description:
The ATAPI I/O is blocked and the device does not work.
>How-To-Repeat:
On following situation:
. Two ATAPI devices are connected to one IDE interface.
. One is AT_DRQT_MPROC.
. The other is AT_DRQT_INTR.
When the AT_DRQT_MPROC device is accessed, the I/O is blocked.
>Fix:
Because of the ATAPI driver, 'atapi.c', works as AT_DRQT_INTR.
The ATAPI driver should work as AT_DRQT_MPROC.
Apply the following patch to /usr/src/sys/i386/isa/atapi.c
*** atapi.c.org Sun Jul 20 23:09:50 1997
--- atapi.c Sun Nov 30 16:49:29 1997
***************
*** 217,222 ****
--- 217,225 ----
case AT_DRQT_ACCEL: printf (", accel"); break;
default: printf (", drq%d", ap->drqtype);
}
+ /* When 'slow' is set, 'intrcmd' is not acceptable. */
+ if (ata->slow && ata->intrcmd)
+ ata->intrcmd = 0;
/* overlap operation supported */
if (ap->ovlapflag)
>Audit-Trail:
>Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199712010159.KAA00458>
