*BSD News Article 2598


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