Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 29 Dec 1995 12:33:54 -0800
From:      jkh@violet.berkeley.edu (Jordan K. Hubbard)
To:        freebsd-scsi@freebsd.org
Subject:   Leonard N. Zubkoff SCSI comments
Message-ID:  <199512292033.MAA10781@violet.berkeley.edu>

next in thread | raw e-mail | index | archive | help
Path: agate!overload.lbl.gov!lll-winken.llnl.gov!nntp.coast.net!news.sprintlink.net!news.clark.net!rahul.net!a2i!dandelion.com!not-for-mail
From: "Leonard N. Zubkoff" <lnz@dandelion.com>
Newsgroups: comp.unix.bsd.freebsd.misc,comp.periphs.scsi
Subject: Re: SCSI-2 Bus Hangs
Date: 29 Dec 1995 00:58:59 -0800
Organization: Dandelion Digital
Lines: 28
Sender: lnz@dandelion.com
Message-ID: <4c0akj$gi3@kelewan.dandelion.com>
References: <4bju5p$ihj@wilma.widomaker.com> <4bp3bp$7cc@scratchy.mosquito.com> <1995Dec26.123518.1@spcvxb.spc.edu> <4brb07$b4q@uriah.heep.sax.de> <4bsu5j$eca@kelewan.dandelion.com> <4btpuu$555@uriah.heep.sax.de>
NNTP-Posting-Host: dandelion.com
NNTP-Posting-User: root
In-reply-to: j@uriah.heep.sax.de's message of 28 Dec 1995 10:02:06 GMT
Xref: agate comp.unix.bsd.freebsd.misc:13774 comp.periphs.scsi:54187

In article <4btpuu$555@uriah.heep.sax.de> j@uriah.heep.sax.de (J Wunsch) writes:

  "Leonard N. Zubkoff" <lnz@dandelion.com> writes:

  >   FreeBSD drivers do this already since day 1.

  > Would you kindly point me to the code where the Bus Device Reset or SCSI
  > Bus Reset is initiated in FreeBSD?

  Sorry, i should have looked before.  Actually, the timeout code is
  there, but not all adapter drivers do bus resets.  I've seen it myself
  for the NCR driver.  For the Adaptec 154X driver, this is the event
  chain that finally causes a timeout:

Ahhh, I understand now.  In the FreeBSD drivers everything is keyed off the
timeout routine, and the driver is expected to abort the command the first
time through, and graduate to a Bus Device Reset or SCSI Bus Reset as
necessary.  The BusLogic driver in bt.c doesn't implement any error
recovery other than aborting a command, which is why I didn't find this.
Perusing aic7xxx.c I see how this is handled.  Thanks for the pointer.

For reference, in Linux the driver provides two separate routines, one to
handle aborting a command and the other to handle resets.  In each case,
the driver tells the mid level code what it actually did and the mid level
code then takes appropriate action.  If an abort also times out, then the
reset code is invoked.

		Leonard



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