summaryrefslogtreecommitdiffstats
path: root/sys/cam
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove a shadow declaration of 'error' that caused certain tests to bescottl2005-02-121-1/+0
| | | | | | pointless. Submitted by: Coverity Prevent analysis tool
* Provide locking for the ccb_bioq. This allows xpt_done() to be called withoutscottl2005-02-091-5/+22
| | | | | | | | | | | Giant held. In camisr(), move the ccb_bioq elements to a temporary local list and then process the elements off of that list. This enables the list to be processed by only taking the ccb_bioq_lock once and only for a very short time. ccb_bioq_lock is a leaf mutex, so it's fine to call xpt_done() with other locks held. This is just a very minor step in the work to lock CAM, but it allows us to avoid some messy locking/unlock dances in certain drivers.
* Boot away another stackgap (one of the lest ones in linuxlator/i386) bysobomax2005-01-301-3/+11
| | | | | | | | | | providing special version of CDIOCREADSUBCHANNEL ioctl(), which assumes that result has to be placed into kernel space not user space. In the long run more generic solution has to be designed WRT emulating various ioctl()s that operate on userspace buffers, but right now there is only one such ioctl() is emulated, so that it makes little sense. MFC after: 2 weeks
* Add quirk for easyRAID ER5 alias areca ARC-6010.mr2005-01-251-0/+5
| | | | | | | It reports itself as SCSI-3 but doesnt like getting probed on high luns because it hangs hard after finding itself again on lun 32... Suggested by: Kenneth Merry
* This is a somewhat imperfect means to try and bring FreeBSD forward inmjacob2005-01-221-3/+13
| | | | | | | | | | | | | | | | | | | | | | its ability to automatically scan and attach luns for modern storage which has luns in the 0..1000 range, not 0..7. The correct thing would be to do REPORT LUNS for devices whose LUN0 version shows a version >= SCSI3, but lacking that we should be able to search higher than LUN 7 if we're >= SCSI3 with no ill effects. This change keeps all of the QUIRK_HILUNS quirks, obeys the QUIRK_NOLUNS, and introduces a QUIRK_NOHILUNS which will keep searches above LUN 7 happening for devices that report >= SCSI3 compliance. I doubt the latter will be needed, but you never know. This allowed me to randomly scan and attach > 500 disks at a time in a situation where quirking for QUIRK_HILUNS wasn't practical (the vendor id and product id changes of the virtualization changes constantly). Reviewed by: ken@freebsd.org, scottl@freebsd.org, gibbs@freebsd.org MFC after: 2 weeks
* Don't pass unadulterated unit numbers to make_dev and its ilk- if youmjacob2005-01-222-5/+6
| | | | | | | have more than 256 units, you die. Horribly. Convert them using unit2minor. MFC after: 1 week
* Start each of the license/copyright comments with /*-imp2005-01-0539-43/+43
|
* Correct another location where inquiry length as calculated from thegibbs2004-11-181-3/+5
| | | | | | inquiry additional length field is off by one. MFC: 3 days
* Correct an off-by-one in the calculation of the inquiry buffer lengthgibbs2004-11-181-1/+11
| | | | | | | | | | | | | | | | | to request from devices during the "long inquiry" portion of our probe. This same bug was fixed in the 4.x stream a few years ago, but the fix was never propogated to -current. This fix is slightly different than in -stable: o Use offsetof() instead of a hard coded constant so as the make the code more self-explainatory. o Round odd long inquiry lengths up so as to avoid tickling ignore wide residue bugs in broken parallel SCSI devices running with a wide transfer negotiation. MFC: 3 days
* Remove references to the second byte of a CCB containing the LUN, as thisbms2004-10-131-4/+4
| | | | | | | | is valid only for SCSI-2 and older devices. Rename the second byte of the VERIFY CCB from 'lun' to 'byte2'. Submitted by: ken MFC after: 2 weeks
* Add necessary data structures and definitions for the 12-byte SCSIbms2004-10-121-0/+79
| | | | | | | | commands READ_FORMAT_CAPACITIES, WRITE_AND_VERIFY, and VERIFY. Reviewed by: ken, scottl Source: USB Mass Storage UFI Specification v1.0 MFC after: 2 weeks
* Remove the camnet swi and CAM_PERIPH_NET. It has never been used, and givenscottl2004-10-052-14/+4
| | | | | that netowrk-over-scsi never really took off, there is little chance that it will ever be needed.
* For removable devices without media we set a zero mediasize but a non-zerophk2004-09-051-1/+1
| | | | | | | | sectorsize in order to avoid a lot of checks around various divisions etc. Enforce the sectorsize being > 0 with a KASSERT on successful open. Fix scsi_cd.c to return 2k sectors when no media inserted.
* Correct a typo in a comment: alloation->allocationgibbs2004-08-301-1/+1
| | | | Reported by: Jens Schweikhardt <schweikh@schweikhardt.net>
* Remove the HW_WDOG option; it serves no purpose.des2004-08-291-4/+0
| | | | MFC after: 3 days
* Add locking to the kqueue subsystem. This also makes the kqueue subsystemjmg2004-08-151-21/+5
| | | | | | | | | | | | | a more complete subsystem, and removes the knowlege of how things are implemented from the drivers. Include locking around filter ops, so a module like aio will know when not to be unloaded if there are outstanding knotes using it's filter ops. Currently, it uses the MTX_DUPOK even though it is not always safe to aquire duplicate locks. Witness currently doesn't support the ability to discover if a dup lock is ok (in some cases). Reviewed by: green, rwatson (both earlier versions)
* When printing out an unknown sense code we should print it in hex, notmjacob2004-08-131-3/+1
| | | | | | decimal. Reviewed by: gibbs, nate, kdm
* add support Frontier Labs NEX IA+ Digital Audio Player with USB CF card ↵sanpei2004-08-121-1/+9
| | | | | | | | reader/writer PR: kern/70158 Submitted by: Bernd Strau. <no_bs@web.de> MFC after: 1 week
* Add support iRiver iFP MP3 playersanpei2004-08-081-0/+8
| | | | | | | | PR: kern/54881, i386/63941, kern/66124 Submitted by: Magnus <bsdhead.at.spray.dot.se@FreeBSD.org>, Dmitry Dyomin <old@old.com.ua>, Dmitry Sivachenko <mitya@demos.su> MFC after: 1 week
* Quirk for SEGRAND NP-900 USB MP3Playersanpei2004-07-181-0/+8
| | | | | | PR: kern/64563 Submitted by: Kunitada Kokubun <unix_grandy@yahoo.co.jp> MFC after: 1 week
* Do a pass over all modules in the kernel and make them return EOPNOTSUPPphk2004-07-152-0/+4
| | | | | | | | for unknown events. A number of modules return EINVAL in this instance, and I have left those alone for now and instead taught MOD_QUIESCE to accept this as "didn't do anything".
* Update for the KDB framework:marcel2004-07-101-1/+2
| | | | o Call kdb_enter() instead of Debugger().
* Revert rev 1.140, it was a bit pre-mature.ps2004-06-211-5/+0
|
* Add a quirk for ciss to stop trying to read the serial number offps2004-06-211-0/+5
| | | | of logical volumes.
* Second half of the dev_t cleanup.phk2004-06-171-1/+1
| | | | | | | | | | | The big lines are: NODEV -> NULL NOUDEV -> NODEV udev_t -> dev_t udev2dev() -> findcdev() Various minor adjustments including handling of userland access to kernel space struct cdev etc.
* Do the dreaded s/dev_t/struct cdev */phk2004-06-167-38/+38
| | | | Bump __FreeBSD_version accordingly.
* Reformat the comments for cam_hdr so that they can be read.scottl2004-06-071-8/+7
|
* Quirk for Neuros USB audio device.njl2004-05-021-0/+8
| | | | | PR: kern/63645 Submitted by: Aron Stansvik <elvstone@osdever.net>
* The opt_da.h file doesn't exist anymore since the DA_OLD_QUIRKS optionmux2004-04-191-1/+0
| | | | has been removed. Unbreak the build by not including it anymore.
* Add miscellaneous USB device quirks.njl2004-04-191-5/+29
| | | | | | | | | PR: kern/53067 PR: kern/54737 PR: kern/54786 PR: kern/57046 MFC after: 1 day
* Remove all quirks hidden under DA_OLD_QUIRKS.njl2004-04-191-120/+0
|
* Compare the *number* of patterns to zero, not the *pointer* to thecperciva2004-02-281-1/+1
| | | | | | | patterns. (These lines are correct the other two times they appear.) Reported by: "Ted Unangst" <tedu@coverity.com> Approved by: rwatson (mentor), ken (scsi)
* Check that periph is non-NULL before dereferencing it.cperciva2004-02-221-1/+1
| | | | | Reported by: "Ted Unangst" <tedu@coverity.com> Approved by: rwatson (mentor), ken (scsi@)
* Device megapatch 4/6:phk2004-02-217-1/+14
| | | | | | | | Introduce d_version field in struct cdevsw, this must always be initialized to D_VERSION. Flip sense of D_NOGIANT flag to D_NEEDGIANT, this involves removing four D_NOGIANT flags and adding 145 D_NEEDGIANT flags.
* Device megapatch 1/6:phk2004-02-217-16/+1
| | | | | | | Free approx 86 major numbers with a mostly automatically generated patch. A number of strategic drivers have been left behind by caution, and a few because they still (ab)use their major number.
* Change the disk(9) API in order to make device removal more robust.phk2004-02-182-44/+50
| | | | | | | | | | | | | | | | | | | | | | | | Previously the "struct disk" were owned by the device driver and this gave us problems when the device disappared and the users of that device were not immediately disappearing. Now the struct disk is allocate with a new call, disk_alloc() and owned by geom_disk and just abandonned by the device driver when disk_create() is called. Unfortunately, this results in a ton of "s/\./->/" changes to device drivers. Since I'm doing the sweep anyway, a couple of other API improvements have been carried out at the same time: The Giant awareness flag has been flipped from DISKFLAG_NOGIANT to DISKFLAG_NEEDSGIANT A version number have been added to disk_create() so that we can detect, report and ignore binary drivers with old ABI in the future. Manual page update to follow shortly.
* Fix type in comment, 's/writtent/written/'johan2004-01-181-1/+1
| | | | | PR: 56954 Submitted by: Dan Langille <dan@langille.org>
* Move the ciss quirk to the right section, also update the commentps2003-12-081-8/+7
| | | | | stating that the controllers do not support SYNC CACHE since ciss only supports a small subset of the scsi spec.
* ciss doesn't like scsi SYNC CACHE. turn it offps2003-12-081-0/+8
|
* SS_FATAL|ENXIO rather than SS_RDEF for illegal track mode.obrien2003-12-011-1/+1
| | | | | | | | This reduces the 90+ lines boot output of spewage GEOM does for my Plextor SCSI burner. Submitted by: scottl Approved by: scottl
* - Implement selwakeuppri() which allows raising the priority of atanimura2003-11-091-1/+1
| | | | | | | | | | | | | thread being waken up. The thread waken up can run at a priority as high as after tsleep(). - Replace selwakeup()s with selwakeuppri()s and pass appropriate priorities. - Add cv_broadcastpri() which raises the priority of the broadcast threads. Used by selwakeuppri() if collision occurs. Not objected in: -arch, -current
* Sprinkle GIANT_REQUIRED asserts around the xpt layer to aid with locking thescottl2003-11-091-0/+58
| | | | SCSI drivers.
* Don't be so chatty when performing manual sense. This should make ATAPICAMscottl2003-11-081-2/+2
| | | | devices a lot more quiet.
* In camperiphdone(), make sure we check for fatal errors and bail outken2003-10-272-16/+17
| | | | | | | | | | | | | | | | | | | | | | instead of retrying them blindly. This should fix some of the problems people have been having with cdrom drives taking a long time to probe. This should also eliminate the need for the initial TUR in cdsize(). cam_periph.c: Don't keep retrying if the error we get back is a fatal error. This should help us detect the transition from "Logical unit not ready, cause not reportable" to "Medium not present" in the "TUR many" handler. (The TUR many handler gets triggered for Logical unit not ready, cause not reportable errors.) scsi_cd.c: Remove the initial test unit ready in cdsize(). Hopefully it isn't necessary after the above change. Submitted by: gibbs (mostly) Tested by: peter MFC After: 2 weeks
* Use bio_offset instead of bio_blknophk2003-10-181-2/+2
|
* There is no need to muck about with the B_PHYS flag here. We never evenphk2003-10-181-8/+0
| | | | get close to DEV_STRATEGY() which is the only place it is relevant.
* (dacleanup, dasysctlinit): Defend against calling sysctl_ctx_free onthomas2003-10-081-2/+5
| | | | | | | | an uninitialized sysctl_ctx, using flag DA_FLAG_SCTX_INIT. This prevents a panic encoutered with some umass units that probe correctly but fail to attach. Same problem, and same fix, as scsi_cd.c rev. 1.86. Reviewed by: njl, ken
* (cdcleanup): Defend against calling sysctl_ctx_free before the sysctl_ctxthomas2003-10-071-12/+15
| | | | | | | | | | | has been initialized. (cdsysctlinit): Set flag CD_FLAG_SCTX_INIT after sysctl_ctx has been initialized. This resolves a panic encountered when a cd drive is sucessfully probed but fails to attach. Reviewed by: ken
* Add disk_destroy() call to detach processing.phk2003-10-061-0/+15
| | | | Add short tempered TUR to cdsize() as a workaround.
* Be kind to 64bit architectures.simokawa2003-10-021-5/+5
|
OpenPOWER on IntegriCloud