Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 2 Feb 1997 18:16:18 -0800 (PST)
From:      "Justin T. Gibbs" <gibbs>
To:        CVS-committers, cvs-all, cvs-sys
Subject:   cvs commit:  src/sys/dev/aic7xxx aic7xxx.seq src/sys/i386/scsi aic7xxx.c aic7xxx.h
Message-ID:  <199702030216.SAA01223@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
gibbs       97/02/02 18:16:17

  Modified:    sys/dev/aic7xxx  aic7xxx.seq
  Log:
  In dma_finish, don't disturb the direction bit in DFCNTRL when turning off
  host DMAs.  The additional test to ensure that the DMA has stopped is also
  unnecessary since we've already waited for the DMA to complete.
  
  Update my copyright for the new year.
  
  Revision  Changes    Path
  1.57      +3 -6      src/sys/dev/aic7xxx/aic7xxx.seq

  Modified:    sys/i386/scsi  aic7xxx.c aic7xxx.h
  Log:
  White space cleanup and other cosmetic style changes.
  
  Fix a few panics during error recovery:
  1) Stupid mistake in the "no SCB match handler"  where I was using the wrong
     variable (busy_scbid instead of scb_index).
  2) Unbusy the target of an abort request if the command we are trying to
     abort is an untagged transaction.  If we don't, we get a fatal NO_MATCH_BUSY
     condition which "should never happen".
  3) When an abort completes, turn off ahc->in_timeout or else the next timeout
     will hit the protective "scb timesout again" panic.
  4) Fix a typo that caused the requeued "abort" SCB to have its TAG_ENB and
     disconnect bits to be cleared (missing ~) so that devices would complain
     about overlapped commands.
  
  Be sure to turn off the unexpected busfree interrupt after we do a bus
  reset since we are expecting the bus to go free in that case.
  
  Return XS_TIMEOUT instead of XS_DRIVERSTUFFUP in certain scenarios.  XS_TIMEOUT
  allows for retries, XS_DRIVERSTUFFUP does not.
  
  Allow commands with SDTR and WDTR negotiation to be tagged.  The SCSI II spec
  says that you probably should not do this for fear of hitting bogus devices.
  The driver did this in the past for almost two years without any problem,
  and not doing it causes problems during error recovery to a tag capable device
  as the number of openings is higher than two and we'll start sending it
  tagged commands causing "overlapped commands attempted" type errors.  The
  real fix needs to happen in the generic SCSI layer which can limit the
  number and type of transactions to a device during error recovery efficiently.
  
  Give ourselves at least 100ms to perform a request sense instead of relying
  on the original timeout to be long enough to complete this new command as
  well as the one that generated the condition.
  
  Removed some redundant code.
  
  Revision  Changes    Path
  1.93      +49 -24    src/sys/i386/scsi/aic7xxx.c
  1.36      +13 -1     src/sys/i386/scsi/aic7xxx.h



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