Return to BSD News archive
Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!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: euryale.cc.adfa.oz.au comp.unix.bsd.freebsd.misc:11719 comp.periphs.scsi:44064 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