Subject: Re: Feb. 29 kernel
To: Charles M. Hannum <mycroft@NetBSD.ORG>
From: Justin T. Gibbs <gibbs@freefall.freebsd.org>
List: port-sparc
Date: 03/05/1996 07:07:51
>
>   Not at all.  The data pointers are modified immediately upon reconnection,
>   it would get really complicated if I didn't do that.  Instead, the residual
>   [...]  
>
>I said `equivalent to'.  I don't see how the *effect* is any different.

If a target reconnects then issued a save data pointers or disconnected
without touching the data phase, you'd get bogus data pointers.  The data
pointers are always correct in the aic7xxx implementation.

>Regardless, you're relying on the amount of data transferred to tell you
>something interesting.  It's clear from looking at the SCSI spec that
>neither of these is acceptable.

Where does the SCSI spec make that clear?  What section?  What is your
definition of the residual?  Mine is the amount of data that was not
transfered to the device or into our buffer, and since we use the residual
to determine how much of our buffer contains valid data, this seems
resonable.  If you were not supposed to rely on the amount of data
transfered for residual processing, why does the spec provide "ignore wide
residue", an explicit target->initiator message to tell you that your
transfer count is off by one-three bytes?  You should be getting the
residual from the device, right?

--
Justin T. Gibbs
===========================================
  FreeBSD: Turning PCs into workstations
===========================================