summaryrefslogtreecommitdiff
path: root/sys/scsi
AgeCommit message (Collapse)Author
2018-08-09Remove the port id check entirely. We don't do anything with the portJonathan Matthew
id after that, so it seems like a silly reason to reject a target. ok dlg@ deraadt@
2018-07-27hds arrays can have more ports now, apparently; this lets theo use 4 pathsJonathan Matthew
to his array rather than just 2. ok dlg@
2018-04-27Delete superfluous includes of <sys/file.>Philip Guenther
ok krw@
2017-12-30Don't pull in <sys/file.h> just to get fcntl.hPhilip Guenther
ok deraadt@ krw@
2017-11-11Fix a broken compilation when using SCSIDEBUG options(4).Mike Larkin
Diff from Carlos Cardenas, thanks! ok krw@
2017-09-08If you use sys/param.h, you don't need sys/types.hTheo de Raadt
2017-05-29sd: flush cache when closing writable FDStefan Fritsch
Don't skip the cache flush until the last opening of the device is closed. Otherwise, when umounting a writable partition while a different partition is still mounted read-only, the necessary disk flush may be delayed for a very long time. ok krw@ deraadt@
2017-05-29Add an ioctl to tell storage devices to flush their internal cachesStefan Fritsch
Currently implemented for wd and sd. Initially ported from netbsd by pedro@ ok deraadt@
2017-05-29To prevent anyone else from stumbling on this (now) archaic bit ofKenneth R Westerback
history, nuke all mentions of XS_NO_CCB and the #define. 2006 - 2017. R.I.P. ok kettenis@ inferred ok dlg@
2017-05-19Add some comments about the assumptions of the scsi mid layerStefan Fritsch
ok krw@
2017-05-04Also pass the blk offset to disk_unbusy(), so that it can pass it toTheo de Raadt
the random subsystem as entropy. This value is pretty much unknown, and anyways our entropy input ring does not saturate from knowns. ok mikeb djm
2016-09-15all pools have their ipl set via pool_setipl, so fold it into pool_init.David Gwynne
the ioff argument to pool_init() is unused and has been for many years, so this replaces it with an ipl argument. because the ipl will be set on init we no longer need pool_setipl. most of these changes have been done with coccinelle using the spatch below. cocci sucks at formatting code though, so i fixed that by hand. the manpage and subr_pool.c bits i did myself. ok tedu@ jmatthew@ @ipl@ expression pp; expression ipl; expression s, a, o, f, m, p; @@ -pool_init(pp, s, a, o, f, m, p); -pool_setipl(pp, ipl); +pool_init(pp, s, a, ipl, f, m, p);
2016-09-04Remove support for tape block devices. Nobody mount(8)s tapes any longer.Christian Weisgerber
ok deraadt@ guenther@
2016-03-19Do not run into sdgetdisklabel() when scsi disk is dying. AddAlexander Bluhm
special error handling in sdopen() as temporary hack. OK krw@
2016-03-18After sleeping and before accessing sc_link, check that scsi diskAlexander Bluhm
is not dying. OK krw@
2016-03-17Do not access the scsi link structure in sdclose() if the diskAlexander Bluhm
device is already dying. Delete the sc_timeout when setting the SDF_DYING flag as the timeout delete in sdclose() may not be reached. OK krw@
2016-03-16Add SDF_DYING checks to more functions in scsi disk, to prevent anAlexander Bluhm
use after free of the scsi link structure during detach. OK krw@
2016-03-12Standardize on calling local scsi_link variables 'link' instead ofKenneth R Westerback
'sc_link'. 'sc_link' is a field in the various device *_softc structures, where the sc_ prefix was for 'softc'. Reduces potential mental confusion. Newer code from down under was already using 'link'. No functional change. Prompted by bluhm@'s adventures in scsi. ok dlg@ jmatthew@
2016-03-12When unplugging an USB umass stick, the kernel could panic becauseAlexander Bluhm
of a use after free. In sdopen() the scsi link pointer is taken from the scsi disk struct. While the scsi disk memory is refcounted by autoconf, the scsi link may be detached and freed during sleep. The solution is to check wether the disk is dying after every sleep. The SDF_DYING flag is set before scsi bus and scsi disk are detached, so without this flag the link must be valid. input and OK krw@
2016-03-11"if (_3btol(cmd->len) != 0)" is more likely to be a useful test thanKenneth R Westerback
"if (cmd->len) != 0)", as cmd->len is a 3 byte array. Broken since media_blkno accounting was introduced in r1.72 (2007!). Might fix some obscure tape issues around miscounting variable sized blocks. Spotted by mmcc@ and his friend clang.
2016-03-10Enforce some naming sanity. Stop using 'sc_link' to mean two differentKenneth R Westerback
things by renaming the field 'SLIST_HEAD(, scsi_link) sc_link' to 'sc_link_list' in struct scsibus_softc. Use 'sb' as the short name for scsibus_softc variables. Impetus from & ok bluhm@
2016-03-07Sync no-argument function declaration and definition by adding (void).Christian Weisgerber
ok mpi@ millert@
2016-02-03Do not access the scsi link of the disk at the beginning of sdopen()Alexander Bluhm
and sdminphys() if the scsi disk is dying. The memory of the link may have been freed already. OK krw@
2016-02-03When accessing the scsi link of a scsi disk, use a variable "sc_link"Alexander Bluhm
everywhere. This is the first step to fix a use after free of the sc_link when the disk detaches. If a function gets a scsi transfer, the scsi link is always valid. Call this variable "link" consistently. OK krw@
2015-08-23add some sizes to free. looked over by deraadtTed Unangst
2015-06-07More damned eye searing whitespace.Kenneth R Westerback
2015-04-02use correct capitalization of 'BlackBerry'Jasper Lievisse Adriaanse
"sure" deraadt@
2015-03-14Remove some includes include-what-you-use claims don'tJonathan Gray
have any direct symbols used. Tested for indirect use by compiling amd64/i386/sparc64 kernels. ok tedu@ deraadt@
2015-03-08Fix some format specifiers in debug code.Kenneth R Westerback
Pointed out by Kor son of Rynar (sic) when trying to test some debug code. ok matthew@
2015-03-04prevent umass devices from being considered for paths.David Gwynne
ok deraadt@
2015-02-11we dont need sys/lock.h because we dont use lockmgr, but we do needDavid Gwynne
sys/atomic.h for atomic_setbits_int.
2015-01-27remove the second void * argument on tasks.David Gwynne
when workqs were introduced, we provided a second argument so you could pass a thing and some context to work on it in. there were very few things that took advantage of the second argument, so when i introduced pools i suggested removing it. since tasks were meant to replace workqs, it was requested that we keep the second argument to make porting from workqs to tasks easier. now that workqs are gone, i had a look at the use of the second argument again and found only one good use of it (vdsp(4) on sparc64 if you're interested) and a tiny handful of questionable uses. the vast majority of tasks only used a single argument. i have since modified all tasks that used two args to only use one, so now we can remove the second argument. so this is a mechanical change. all tasks only passed NULL as their second argument, so we can just remove it. ok krw@
2014-12-16primary change: move uvm_vnode out of vnode, keeping only a pointer.Ted Unangst
objective: vnode.h doesn't include uvm_extern.h anymore. followup changes: include uvm_extern.h or lock.h where necessary. ok and help from deraadt
2014-12-15convert bcopy to memcpy. ok dlg krwTed Unangst
2014-09-20Fix bug in taskq conversion that would lead to a null pointer dereference.Mark Kettenis
ok krw@, jsg@
2014-09-18Some disks, such as the Seagate Cheetah 73LP FC with Sun firmwareMark Kettenis
(ST373405FSUN72G) respond to a START STOP UNIT command that spins down the disk with a "Logical Unit Not Ready, Initialization Command Required". Besides causing some dmesg spam, our sd(4) driver responds to such a response by spinning the disk back up. Prevent this from happening by respecting the SCSI_IGNORE_NOT_READY flag and using that flag when spinning down the disk. ok miod@
2014-09-14remove uneeded proc.h includesJonathan Gray
ok mpi@ kspillner@
2014-09-13Replace all queue *_END macro calls except CIRCLEQ_END with NULL.Doug Hogan
CIRCLEQ_* is deprecated and not called in the tree. The other queue types have *_END macros which were added for symmetry with CIRCLEQ_END. They are defined as NULL. There's no reason to keep the other *_END macro calls. ok millert@
2014-09-09remove the scsi_task() wrapper around workq_add_task now that nothingDavid Gwynne
uses it. dont need to include workq.h anymore here either now.
2014-09-09rework the hotplug requests to use tasks rather than workqs.David Gwynne
tested on mpi(4) sas.
2014-07-13use mallocarray where arguments are multiplied; ok teduTheo de Raadt
2014-07-12add a size argument to free. will be used soon, but for now default to 0.Ted Unangst
after discussions with beck deraadt kettenis.
2014-07-10Now that sd(4) drives under softraid0 have their cache flushed whenMartin Pieuchot
DVACT_POWERDOWN is propagated in this subtree, there is no need for this shutdown hook anymore. RIP. ok kettenis@
2014-07-01take the biglock before calling the xs completion handler.David Gwynne
should be safe to call the midlayer io path without the biglock now.
2014-07-01take the biglock when calling an adapters scsi_cmd handler.David Gwynne
2014-07-01start on being able to safely run io through the midlayer withoutDavid Gwynne
the kernel biglock. the plan is to have the midlayer assume its running without the biglock, but that it cant call adapters or devices without taking the biglock first. this diff just wraps the calls to the adapter iopool get and put handlers up in the biglock. this is safe now because of kettenis' commit to src/sys/kern/init_main.c r1.120. ive been running this in various places since early 2011.
2014-05-01move pointer use to after a NULL pointer checkJonathan Gray
ok dlg@
2014-04-22factor out the code that figures out whether you're probing or detachingDavid Gwynne
a whole bus, a target, or a specific lun on a target from the bioctl and scsi_req paths. i want to reuse this factored code for something claudio wants.
2014-04-20make the status handler more like rdac and emc. the big functional changeDavid Gwynne
is to check xs->status on completion to make sure it worked.
2014-04-19move scsi_xs_put after checks that use fields in the xsJonathan Matthew
ok dlg@