Return to BSD News archive
Newsgroups: comp.unix.bsd
Path: sserve!manuel!munnari.oz.au!uunet!zaphod.mps.ohio-state.edu!usc!elroy.jpl.nasa.gov!ucla-cs!ucla-mic!scott
From: scott@pita.cns.ucla.edu (Scott Burris)
Subject: 386BSD 0.1: variable blocksize tape on SCSI bugfix
Message-ID: <1992Jul27.130522.11907@mic.ucla.edu>
Nntp-Posting-Host: pita.cns.ucla.edu
Reply-To: scott@pita.cns.ucla.edu (Scott Burris)
Organization: UCLA Campus Network Services
Date: 27 Jul 92 13:05:21 PDT
Lines: 25
The SCSI driver is broken for variable length tape devices. The problem
is that the data transfer length is computed by code which assumes a fixed
block tape drive. This causes the computer to transfer less data than
the SCSI transaction calls for, which hangs the SCSI bus. Context
diff's follow.
*** as.c Sun Jul 19 08:15:02 1992
--- as.c.orig Sat Jul 18 20:10:32 1992
***************
*** 899,906 ****
n = 0;
sp = as->scatter_list;
nscatter = 0;
- if (as->tape && as->bs == 1)
- total = bp->b_bcount;
while (n < total && nscatter < NSCATTER) {
thistime = page_size - ((vm_offset_t)p - trunc_page (p));
--- 889,894 ----
--
----------
Scott Burris
UCLA Campus Network Services
cnetslb@oac.ucla.edu (213) 206-4860 - OR - scott@pita.cns.ucla.edu