Commit Graph

2114 Commits

Author SHA1 Message Date
Justin T. Gibbs
0c4930f525 Don't invalidate devices due to unexpected unit attention errors. In
a perfect world, we'd notice the UA and do some device validation to ensure
that the device hasn't changed.  We may get this before the year ends,
but not before 3.0R.  This change gives the adminstrator ample ammunition
to take off a foot or two, but hey this *is* UN*X.
1998-09-20 07:17:11 +00:00
Justin T. Gibbs
e471e974cc cam_xpt.c:
Add quirk entry for a Samsung drive that doesn't like experiencing
	the queue full condition.

	Bump the timeouts for all probe activities to 60s.  We don't know
	what the seletion timeout (or equivelent on other mediums) is
	for controllers, which can make the transactions at the tail
	end of a parallel probe take a while to complete.  The DPT
	seems to be a card that takes a long time to see a selection timeout.

cam_periph.c:
	Don't call a device "gone" after a single selection timeout.  We
	need to come up with a better policy.  Until that time, you'll
	have to manually re-scan a bus via camcontrol for the system to
	decide that a device is really gone.  This should give devices
	experiencing temporary insanity to escape death.
1998-09-20 07:14:36 +00:00
Justin T. Gibbs
ecdf111388 Only deregister out configuration hook manually if there are no SCSI
busses to configure.
1998-09-20 05:03:34 +00:00
Justin T. Gibbs
9eec0f7d5a Don't leave the device queue in a frozen state if the Synchronize Cache
command on close fails.
1998-09-19 04:59:35 +00:00
Kenneth D. Merry
66411419a6 Fix error recovery in scsi_interpret_sense(). It turns out that ERESTART
wasn't getting sent back for most errors, even if there were retries left
on the command.  I'm not sure how I ever let this slip by before...

In any case, we now send back ERESTART if there are retries left for the
command, and send back the default error code when there are no retries
left.

Reviewed by:	gibbs
1998-09-19 01:23:04 +00:00
Kenneth D. Merry
37b9efd37b Fix the CAM code so that people can compile kernels with the CD driver but
without the DA driver.

The problem was that the CD driver depended on scsi_read_write() and
scsi_start_stop(), which were defined in scsi_da.c.

I moved both functions, and their associated data structures and defines
from scsi_da.* to scsi_all.*.  This is technically the "wrong" thing to do
since those commands are really only for direct-access type devices, not
for all SCSI devices.  I think, though, that the advantage (allowing people
to compile kernels without the disk driver) outweighs any architectural
purity arguments.

PR:		kern/7969
Reviewed by:	gibbs
1998-09-18 22:33:59 +00:00
Kenneth D. Merry
6747168dc9 Change the Atlas II quirk entries so they work with differential Atlas
II's.  Also, add a quirk entry for the 2 gig Atlas II.

Partially Submitted by:	Ted Buswell <tbuswell@mediaone.net>
1998-09-18 19:55:34 +00:00
Kenneth D. Merry
a822eb2a8b Fix a formatting error.
Fix a problem reported by bde:  setting SCSI_DELAY to 0 doesn't work.  Now,
when the user sets SCSI_DELAY to 0, we re-set it to the minimum allowable
bus settle delay (100ms).

Fix a potential panic in xptfinishconfigfunc() if the CCB passed in is
NULL.  Reported by, I think, Nicolas Souchu.  Fix a memory leak in the same
function (we created a path, but didn't free it) by allocating the getdev
CCB and path on the stack.

Reviewed by:	gibbs
1998-09-17 23:58:53 +00:00
Kenneth D. Merry
c5e6ca4410 Some Alpha patches for CAM from Doug Rabson.
Reviewed by:	gibbs
Submitted by:	dfr
1998-09-16 23:30:11 +00:00
Justin T. Gibbs
9bc66b835c Properly allocate our, per lun, probe peripheral softc from
the TEMP malloc pool.

Noticed by: Don Lewis <Don.Lewis@tsc.tdk.com>
1998-09-16 13:24:37 +00:00
Kenneth D. Merry
66a0780e8e Check to make sure that this device is opened read-write, not just read
only.  Previously, if the device was chmoded 644, someone could open it
with the O_RDONLY flag and issue any ioctl to the device.

Reviewed by:	imp, gibbs
1998-09-16 00:11:53 +00:00
Justin T. Gibbs
5ee58402df Correct printf format bugs. 1998-09-15 22:05:44 +00:00
Justin T. Gibbs
76babe507b SCSI Peripheral drivers for CAM:
da	- Direct Access Devices (disks, optical devices, SS disks)
	cd	- CDROM (or devices that can act like them, WORM, CD-RW, etc)
	ch	- Medium Changer devices.
	sa	- Sequential Access Devices (tape drives)
	pass	- Application pass-thru driver
	targ	- Target Mode "Processor Target" Emulator
	pt	- Processor Target Devices (scanners, cpus, etc.)

Submitted by:	The CAM Team
1998-09-15 06:36:34 +00:00
Justin T. Gibbs
8b8a9b1d3e CAM Transport Layer (XPT).
Submitted by:	The CAM Team
1998-09-15 06:33:23 +00:00