summaryrefslogtreecommitdiffstats
path: root/sys/cam/cam_xpt.c
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix several potential buffer overrun conditions. These changes have beenken1998-10-151-4/+4
| | | | | | | | tested both in the kernel and in userland. Also, fix a couple of printf warnings that show up when CAMDEBUG is defined. Reviewed by: imp Partially submitted by: imp
* Clean up some unused variables.ken1998-10-151-11/+1
| | | | | Reviewed by: ken Submitted by: phk
* Narrow the quirk entry for the Seagate Elite 9 a bit to just cover drivesken1998-10-141-2/+2
| | | | | with 71* firmware revisions. Scott Mace <smace@intt.ORG> reports that drives with 00* firmware revisions do tagged queueing just fine.
* Disable tagged queueing for the Seagate Elite 9GB drives. They tend to getken1998-10-141-1/+10
| | | | | | | | | hung up when you send tags to them too quickly. (CAM is able to recover from the problem, but this just avoids it altogether.) Reviewed by: gibbs Reported by: Bret Ford <bford@uop.cs.uop.edu> and: Martin Renters <martin@tdc.on.ca>
* Fix a bug in the scan lun code that showed up when we did the followingken1998-10-131-2/+3
| | | | | | | | | | | | | sequence of things: - spin up a disk - send an async event to refresh the inquiry data - run through xpt_scan_lun() to re-probe the device - eventually finish the probe, but panic in xpt_done() because the periph pointer wasn't set. Reviewed by: gibbs Reported by: Philippe Regnauld <regnauld@deepo.prosa.dk>
* Add a "dummy light" (actually two dummy lights) to catch people who don'tken1998-10-121-1/+18
| | | | | | | | | have the passthrough device configured in their kernel. This will hopefully reduce the number of people complaining that they can't get {camcontrol, xmcd, tosha, cdrecord, etc.} to work. Reviewed by: gibbs
* If the bus delay is >= 2 seconds, notify the user that we are waitinggibbs1998-10-101-2/+7
| | | | | for devices to settle. This will hopefully allay any 'first installation' fears that the machine has hung.
* Add a quirk entry for the CFP2107, another drive with brokengibbs1998-10-071-2/+9
| | | | | | | | | | | | tagged queuing support. Ensure that we report that a device supports tagged queuing even if the system is waiting a "command count delay" before starting to use them. If a user disables disconnects on a device ensure that tagged queuing is also turned off. We did the right thing during initial configuration, but could be confused by manual changes.
* Disable multi-lun probing and serial number inquiries for the Exabyte 8200.ken1998-10-061-1/+12
|
* Add a new CAM debugging mode, CAM_DEBUG_CDB. This causes the kernel token1998-10-021-1/+15
| | | | | | | | | | | | | print out a one line description/dump of every SCSI CDB sent to a particular debugging target or targets. This is a good bit more useful than the other debugging modes, I think. Change some things in LINT to note the availability of this new option. Fix an erroneous argument to scsi_cdb_string() in scsi_all.c Reviewed by: gibbs
* Correct problems with xpt_set_transfer_settings and async transfergibbs1998-09-251-56/+68
| | | | negotiation changes with wildcarded paths.
* Fix a few problems with the tag delay code:gibbs1998-09-241-47/+68
| | | | | | | | - Tagged devices were limited to one transaction (oops) - We revert to untagged with a tag delay if the user changed the transfer negotiation values (via perhaps camcontrol some day). - xpt_async did not use the expanded path in some cases which could cause a panic.
* Allow 5 untagged commands to go to a device before enabling tags aftergibbs1998-09-231-30/+90
| | | | | | | | | | | | | | | | | enabling transfer negotiations, a BDR, or a bus reset to allow the controller driver to negotiate without tagged messages getting in the way. Some devices are confused by attempts to negotiate and tag at the same time. Some controllers (e.g. BT MultiMaster with certain firmware revs) will never negotiate if you don't give them an untagged "window" to perform negotiation in. Bump the maximum tag count to 255. The system reclaims unused tag space as the tag count is dropped anyway, so we might as well try the max. We should probably use a larger type than u_int8_t to hold our tag value as SCSI over certain mediums allows for higher values. Reviewed by: Kenneth Merry <ken@FreeBSD.org>
* Add several quirks:ken1998-09-221-1/+43
| | | | | | | | | | | | | | | Western Digital Enterprise drives have sorry performance (1.5MB/sec versus 8MB/sec) when doing tagged queueing. Disable tagged queueing for them. Submitted by: Andrew Gallatin <gallatin@cs.duke.edu> Some Sony CDROM drives don't like it when we probe more than one LUN. Verified by: Jean-Marc Zucconi <jmz@FreeBSD.ORG> Some Sony CD-R's don't like multi-LUN probing either. Submitted by: Parag Patel <parag@cgt.com>
* cam.c:gibbs1998-09-221-9/+9
| | | | | | | | | | | | | Clear up trailing NULs in cam_strvis. cam_xpt.c: Nuke an experimental quirk entry for the Toshiba 3401. The real problem with this device turned out to be a bug in the aic7xxx driver that was fixed months ago. Add a quirk entry to inhibit multiple lun scanning and serial number probing of DPT RAID volumes. My DPT controller hangs up solid when I do either of these things to a RAID 1 volume.
* cam_xpt.c:gibbs1998-09-201-5/+14
| | | | | | | | | | | | | | | | | | 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.
* Only deregister out configuration hook manually if there are no SCSIgibbs1998-09-201-5/+6
| | | | busses to configure.
* Change the Atlas II quirk entries so they work with differential Atlasken1998-09-181-3/+8
| | | | | | II's. Also, add a quirk entry for the 2 gig Atlas II. Partially Submitted by: Ted Buswell <tbuswell@mediaone.net>
* Fix a formatting error.ken1998-09-171-19/+31
| | | | | | | | | | | | | 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
* Some Alpha patches for CAM from Doug Rabson.ken1998-09-161-1/+3
| | | | | Reviewed by: gibbs Submitted by: dfr
* Properly allocate our, per lun, probe peripheral softc fromgibbs1998-09-161-2/+2
| | | | | | the TEMP malloc pool. Noticed by: Don Lewis <Don.Lewis@tsc.tdk.com>
* Check to make sure that this device is opened read-write, not just readken1998-09-161-1/+7
| | | | | | | 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
* Correct printf format bugs.gibbs1998-09-151-2/+2
|
* CAM Transport Layer (XPT).gibbs1998-09-151-0/+5610
Submitted by: The CAM Team
OpenPOWER on IntegriCloud