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