History log of /src/sys/dev/scsipi/scsi_base.c |
Revision | | Date | Author | Comments |
1.93 |
| 03-May-2019 |
mlelstv | Avoid null pointer deref in printing xfer mode when no target driver is attached. Fixes kern/54157.
|
1.92 |
| 17-Jun-2017 |
mlelstv | branches: 1.92.6; The atapibus detach path did hold the channel mutex while calling into autoconf, which would trigger a panic when unplugging a USB ATAPI CDROM.
Align detach code for scsibus and atapibus to fix this.
Also avoid races when detaching devices by replacing callout_stop with callout_halt.
|
1.91 |
| 20-Nov-2016 |
mlelstv | branches: 1.91.8; Make scsipi framework MPSAFE.
Data structures are now protected by a per-adapter mutex at IPL_BIO that is created by the scsibus or atapibus instance when the adapter is configured. The enable reference counter and the channel freeze counter which are currently used by HBA code before the adapter is configured, are made atomic. The target drivers are now all tagged as D_MPSAFE.
Almost all HBA drivers still require the kernel lock to present, so all callbacks into HBA code are still protected by kernel lock unless the driver is tagged as SCSIPI_ADAPT_MPSAFE.
TODO: refactor sd and cd to use dksubr.
|
1.90 |
| 20-Apr-2012 |
bouyer | branches: 1.90.2; 1.90.16; 1.90.20; Add a bustype_async_event_xfer_mode() callback to scsipi_bustype (which can be NULL), so that transport-specific details of transfer mode setting/printing can be handled more easily. Move scsipi_async_event_xfer_mode() and scsipi_print_xfer_mode() to scsi_base.c and split in parallel scsi and FC/SAS parts. size of struct scsipi_bustype has changed, welcome to 6.99.5
|
1.89 |
| 28-Apr-2008 |
martin | branches: 1.89.34; 1.89.38; Remove clause 3 and 4 from TNF licenses
|
1.88 |
| 05-Apr-2008 |
cegger | branches: 1.88.2; 1.88.4; use aprint_*_dev and device_xname
|
1.87 |
| 16-Nov-2006 |
christos | branches: 1.87.48; __unused removal on arguments; approved by core.
|
1.86 |
| 12-Oct-2006 |
christos | - sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
1.85 |
| 11-Dec-2005 |
christos | branches: 1.85.20; 1.85.22; merge ktrace-lwp.
|
1.84 |
| 18-Sep-2004 |
mycroft | Standardize some variable names and the calling pattern for scsipi_command(). Use void pointer casts.
|
1.83 |
| 17-Sep-2004 |
mycroft | Remove the "xfer" argument to scsipi_command().
|
1.82 |
| 17-Sep-2004 |
mycroft | Change the way bustype_cmd is used. Rather than having it be responsible for calling scsipi_make_xs() and scsipi_execute_xs(), instead push these into scsipi_command. Make bustype_cmd and PHOLD/PRELE be called from scsipi_execute_xs(). This allows us to create a xfer structure -- possibly on the stack -- and call scsipi_execute_xs() directly.
|
1.81 |
| 09-Sep-2004 |
bouyer | Make the xxstart() functions reentrant again, as some drivers HBA can call scsipi_done() from their scsipi_request(). For this, add a struct scsipi_xfer * argument to scsipi_command(). If not NULL scsipi_command() will use this to enqueue this xfer, otherwise it'll try to allocate a new one. This scsipi_xfer has to be allocated and initialised by scsipi_make_xs() or equivalent. In xxstart(), allocate a scsipi_xfer using scsipi_make_xs(), and if not NULL, dequeue the buffer before calling scsipi_command(). This makes sure that scsipi_command() will not fail, and also makes sure that xxstart() won't be called again between the BUFQ_PEEK() and BUFQ_GET().
Fix "dequeued wrong buf" panics reported by Juergen Hannken-Illjes in private mail and Andreas Wrede on current-users@. Thanks to Jason Thorpe and Chuck Silver for review, and Andreas Wrede for testing the patch.
|
1.80 |
| 27-Aug-2004 |
bouyer | Improve handling of memory shortage, to fix problems like: sd3(mpt0:0:1:0): unable to allocate scsipi_xfer sd3: not queued, error 12 Havard Eidnes's analysis of this problem is that the scsipi_xfer pool is competing for resources with other pools, including the the inode and vnode pools which can grow quite large.
*_scsipi_cmd(): don't biodone the buffer if scsipi_make_xs() fails, let the caller deal with the problem start function of block devices drivers: dequeue the buffer after the scsipi_command() call. If scsipi_command() fails with ENOMEM don't dequeue the buffer, and schedule a callout to call the start function after some delay. scsipi_init(): prime the scsipi_xfer_pool with one page. This ensure that there is always some scsipi_xfer to play with. If scsipi_command() fails because of pool_get(), we're sure there will be resources available later, when the pending commands have completed.
Reviewed by Jason Thorpe and Havard Eidnes. Todo: remove the "unable to allocate scsipi_xfer" and "not queued, error %d" printfs, but I choose to keep them for now, to help make sure the code does what it should.
|
1.79 |
| 21-Aug-2004 |
thorpej | Use ANSI function decls and make use of static.
|
1.78 |
| 05-Aug-2004 |
bouyer | scsi_kill_pending(): don't kill the commands in periph_xferq here. The controller is handling them, calling scsipi_done() here will end up in the xfer being scsipi_done()'ed a second time when it completes in the controller code. In addition, the way the loop was done here would end up in an infinite loop, because the channel kernel thread needs to run to remove a command from this queue.
scsibusdetach(): scsipi_done() all commands from periph_xferq. The controller is already gone, and these commands will never complete. Shut down the channel (which will cause the kenrel thread to exit) after detaching the childs, as they will need the kernel thread for scsipi_wait_drain().
Fix kernel hang or deadlock when detaching devices (either by scsictl detach or unplug) with active commands.
|
1.77 |
| 15-Nov-2001 |
lukem | branches: 1.77.16; 1.77.18; don't need <sys/types.h> when including <sys/param.h>
|
1.76 |
| 13-Nov-2001 |
lukem | add RCSIDs
|
1.75 |
| 18-Jul-2001 |
thorpej | bzero -> memset
|
1.74 |
| 25-Apr-2001 |
bouyer | branches: 1.74.2; Pull up the thorpej_scsipi branch to main branch. This is a completely rewritten scsipi_xfer execution engine, and the associated changes to HBA drivers. Overview of changes & features: - All xfers are queued in the mid-layer, rather than doing so in an ad-hoc fashion in individual adapter drivers. - Adapter/channel resource management in the mid-layer, avoids even trying to start running an xfer if the adapter/channel doesn't have the resources. - Better communication between the mid-layer and the adapters. - Asynchronous event notification mechanism from adapter to mid-layer and peripherals. - Better peripheral queue management: freeze/thaw, sorted requeueing during recovery, etc. - Clean separation of peripherals, adapters, and adapter channels (no more scsipi_link). - Kernel thread for each scsipi_channel makes error recovery much easier (no more dealing with interrupt context when recovering from an error). - Mid-layer support for tagged queueing: commands can have the tag type set explicitly, tag IDs are allocated in the mid-layer (thus eliminating the need to use buggy tag ID allocation schemes in many adapter drivers). - support for QUEUE FULL and CHECK CONDITION status in mid-layer; the command will be requeued, or a REQUEST SENSE will be sent as appropriate.
Just before the merge syssrc has been tagged with thorpej_scsipi_beforemerge
|
1.73 |
| 03-Apr-2000 |
enami | branches: 1.73.6; When killing pending xfers on device detach, we can't expect scsipi_done to remove all xfers from the pending queue. It removes only xfers for asynchronous transactions. So, simply loop over all pending xfers with calling scsipi_done and wait xfers to drain. Addresses PR#9703.
|
1.72 |
| 17-Mar-2000 |
soren | scsiprint() is needed even without scsibus'es, so move it to scsi_base.c .
|
1.71 |
| 17-Jan-2000 |
bouyer | Use SCSIPIRETRIES instead of hard-coded value '2' for number of retries in common routines. Define SCSIPIRETRIES as 4, so that the command will finally succeed after several consecutive downgrades from UDMA2 to PIO4.
|
1.70 |
| 20-Oct-1999 |
enami | Cancel active transfers on aic/wdc detach. Also makes LS-120 drive works for me again.
|
1.69 |
| 30-Sep-1999 |
thorpej | branches: 1.69.2; 1.69.4; 1.69.6; Cleanup the scsipi_xfer flags: - `flags' is now gone, replaced with `xs_control' and `xs_status'. - Massive cleanup of the control flags. Now we explicitly say that a job is to complete asynchronously, rather than relying on side-effects, and use a new flag to now that device discovery is being performed. - Do SCSI device discovery interrupt-driven.
|
1.68 |
| 28-Aug-1999 |
thorpej | If scsipi_make_xs() fails, make sure to flag the buffer as error'd, if provided, and biodone() it. Callers of scsipi_command() expect this to be done.
|
1.67 |
| 12-Jun-1999 |
pk | scsipi_free_xs() wants to be called at splbio; do it.
|
1.66 |
| 17-Nov-1998 |
bouyer | branches: 1.66.4; 1.66.6; 1.66.8; Rename scsi_interpret_sense() to scsipi_interpret_sense() and move it from scsi_base.c to scsipi_base.c. Rename the functions from scsi_verbose.c too, and rename the file itself. Cleaup includes too (scsi_*.h should not be #included in scsipi_*.h files, which are supposed to be common to atapi and scsi).
|
1.65 |
| 15-Aug-1998 |
mycroft | Assign my copyrights to TNF.
|
1.64 |
| 30-Jul-1998 |
mjacob | branches: 1.64.2; opt_scsiverbose.h now is opt_scsi.h and contains the defopted SCSIVERBOSE and the new ST_ENABLE_EARLYWARN.
|
1.63 |
| 15-Jul-1998 |
mjacob | part of fix for kern/3835: use of enumerated returns from target sense handlers
|
1.62 |
| 11-Jul-1998 |
mjacob | Clarify that Sense Key 1 is a "RECOVERED ERROR"- not just an error.
|
1.61 |
| 01-Jul-1998 |
mjacob | Use new Sense Key defines (for clarity)
|
1.60 |
| 28-Mar-1998 |
christos | Split out the verbose printing of scsi messages, so that user programs can use the printing routines.
|
1.59 |
| 05-Feb-1998 |
mrg | initial import of the new virtual memory system, UVM, into -current.
UVM was written by chuck cranor <chuck@maria.wustl.edu>, with some minor portions derived from the old Mach code. i provided some help getting swap and paging working, and other bug fixes/ideas. chuck silvers <chuq@chuq.com> also provided some other fixes.
this is the rest of the MI portion changes.
this will be KNF'd shortly. :-)
|
1.58 |
| 15-Jan-1998 |
cgd | add support for an ATAPI attachment for 'sd'. fix 'cd' driver's NCD_SCSI bogosity (was using testing wrong macro!) clean up in various ways: * make common atapi_mode_{sense,select}() functions. * put ATAPI data structures in more sensible headers, split up by device type. * include headers a bit more carefully. * pass flags to attachment-specific cd functions, and use them. * get rid of SCSI bits in scsipi_base.h's scsipi_make_xs(), move them into the correct place in scsi_base.c. * fix minor typo in struct name in scsipiconf.h (which was apparently never used except in a #define later in the same file). * use __attribute__ to force 4-byte alignment for xs command store, so that architectures trying to bus_space_write_multi_N() (where N > 1) that data to a controller won't lose. * clean up a few comments in typos, and make a few #defines easier to understand/maintain. * rename cd_link.h to cdvar.h (via repository copy). This is exactly what a 'var' file is supposed to be.
|
1.57 |
| 30-Dec-1997 |
is | EACCESS->EROFS, for the write on readonly medium error.
|
1.56 |
| 23-Nov-1997 |
enami | Remove newline after printing FRU CODE instead of removing newline before printing SKSV information.
|
1.55 |
| 18-Oct-1997 |
thorpej | Implement two macros, scsipi_command() and scsipi_command_direct(), and use them to hide the structure of the function pointers we jump through to issue a command.
|
1.54 |
| 08-Oct-1997 |
mjacob | Slight formatting change.
|
1.53 |
| 08-Oct-1997 |
mjacob | The bit pointer field is a 3 bit value- not 4.
|
1.52 |
| 02-Oct-1997 |
mjacob | kern/3022: make sure that printing sense info in SCSIDEBUG case starts at the right place and contains the right number of bytes.
|
1.51 |
| 01-Oct-1997 |
mjacob | Silly boy.... don't print out sense info if the command was marked SCSI_SILENT, and print the opcode with a leading 0x if you're printing in hex.
|
1.50 |
| 01-Oct-1997 |
enami | Cosmetic changes to keep coding style consistency in this directory;
- Indent with tab of width 8. - Use four column to indent continuation line. - Fold long line if possible. - Use return (xx) instead of return xx. - Compare pointer against NULL instead of testing like boolean. - Delete whitespace at the end of line. - Delete whitespace in front of function call operator. - Delete whitespace after cast. - Dereference a pointer to function explicitly. - Add an empty line after local variable declaration. - Use NULL instead of (char *)0. - Dont use block for single statement.
|
1.49 |
| 13-Sep-1997 |
enami | Declare SCSIVERBOSE by defopt in files.scsipi. Include opt_scsiverbose.h in scsi_base.c and st.c.
|
1.48 |
| 05-Sep-1997 |
bouyer | Restore indentation of SCSIVERBOSE output.
|
1.47 |
| 27-Aug-1997 |
bouyer | branches: 1.47.2; Merge scsipi branch in the mainline. This add support for ATAPI devices (currently only CD-ROM drives on i386). The sys/dev/scsipi system provides 2 busses to which devices can attach (scsibus and atapibus). This needed to change some include files and structure names in the low level scsi drivers.
|
1.46 |
| 20-Aug-1997 |
mjacob | Add in (enabled by SCSIVERBOSE option since it adds a fair amount of string gup to the kernel) more detailed SCSI error printing, based off of final SCSI-2 specification. This will also print out things like progress indicator errors, and will also dump out additional sense bytes that haven't been decoded.
Also, turned the error message 'DELAYED' to 'DEFERRED' since that's more accurate.
|
1.45 |
| 04-Aug-1997 |
fair | %x -> 0x%x
|
1.44 |
| 09-Jun-1997 |
matthias | branches: 1.44.4; In case of a SCSI-error print the extended sense information and not some sort of random garbage.
|
1.43 |
| 02-Apr-1997 |
mycroft | Push the buffer cleanup code into scsi_done(), and split it so that biodone() is called *after* the driver `done' routine. This fixes disk I/O statistics on SCSI devices.
Also, calling the `done' routine with a `complete' argument of 0 and actually having it do anything meaningful loses in at least 3 ways, so just nuke the argument altogether and don't call it this way. If the driver needs to do some error handling, that's what `err_handler' is for.
|
1.42 |
| 20-Mar-1997 |
thorpej | Back out part of the previous patch - not only does stuffing a sizeof() into 8 bits generate (bogus) warnings on some architectures, but the change to pad on "scsi inquiry" is no longer needed, apparently. Thanks to Matthias Pfaller for pointing the latter out to me.
|
1.41 |
| 18-Mar-1997 |
thorpej | Two changes from Ian Dall <ian.dall@dsto.defence.gov.au>: - Deal with devices that ignore the length specified in the inquiry command. - Allow asynchronous requests without using a buf (key off NOSLEEP instead).
|
1.40 |
| 12-Oct-1996 |
christos | revert previous kprintf change
|
1.39 |
| 10-Oct-1996 |
christos | printf -> kprintf, sprintf -> ksprintf
|
1.38 |
| 03-Sep-1996 |
thorpej | Store the SCSI version in the scsi_link, and set the LUN in the CDB if the version is <= SCSI-2. This should help some older SCSI devices that previously needed the "NOLUNS" quirk. While this is not strictly necessary on SCSI-2 devices, the spec allows it, so we set it for SCSI-2 devices "just in case". See section 7.2.2 of Draft X3T9.2 Rev 10L for details.
|
1.37 |
| 05-Jul-1996 |
christos | - Apply PR/2535: Add support for flex scsi disks. - Add a quirk called SCSI_NOMODESENSE for drives like the iomega jaz, that don't support mode sense.
|
1.36 |
| 03-May-1996 |
christos | - SCSIDEBUG printf() fixes.
|
1.35 |
| 22-Apr-1996 |
christos | remove include of <sys/cpu.h>
|
1.34 |
| 19-Mar-1996 |
mycroft | Define a full set of [234][bl]tol() and lto[234][bl]() conversion functions, inlined. Use sized types in protocol structures. Make the definition of scsi_sense_data less ugly.
|
1.33 |
| 14-Feb-1996 |
christos | scsi prototypes
|
1.32 |
| 31-Jan-1996 |
briggs | Handle COMMAND ABORTED by forcing a retry. PR#2003, but with some more diagnostic info.
|
1.31 |
| 12-Jan-1996 |
thorpej | Handle cases like the following: - controller calls scsi_done() with error XS_TIMEOUT - scsi_done() calls sddone() - sddone() calls disk_unbusy() - scsi_done() calls controller to retry command (missing the call to disk_busy()) - controller calls scsi_done() - scsi_done() calls sddone() - sddone() calls disk_busy(), which panics because of the imbalance. Bug noticed by Leo Weppleman, who also suggested this fix; pass an additional boolean argument ("complete") to the device's "done" routine, with a value of `0' passed from the previous call to "done", and add an additional call to "done" when the xfer resources are freed.
|
1.30 |
| 26-Sep-1995 |
thorpej | Don't declare Debugger(). It's handled in <sys/systm.h>. #include <sys/systm.h> where necessary, as suggested by Jonathan Stone. Fixes PR #1511.
|
1.29 |
| 03-May-1995 |
mycroft | Make the byte-shifting code consistent.
|
1.28 |
| 26-Jan-1995 |
mycroft | Update copyrights.
|
1.27 |
| 26-Jan-1995 |
mycroft | Redo the `wait for spin up' code. The Mach 3 method clearly doesn't work. Also, rearrange the first open sequences a bit; SDEV_OPEN is no longer magic.
|
1.26 |
| 16-Jan-1995 |
mycroft | Trivial simplification.
|
1.25 |
| 13-Jan-1995 |
mycroft | Add a DIAGNOSTIC check.
|
1.24 |
| 30-Dec-1994 |
mycroft | Fix some oversights in the debugging code.
|
1.23 |
| 29-Dec-1994 |
mycroft | Fix a couple of things in the sense printing code.
|
1.22 |
| 28-Dec-1994 |
mycroft | Numerous changes. Many bugs fixed, better autoconfig, a few new features.
|
1.21 |
| 01-Dec-1994 |
mycroft | Remove some redundant code.
|
1.20 |
| 01-Dec-1994 |
mycroft | Remove unneeded override of SCSI_NOSLEEP.
|
1.19 |
| 01-Dec-1994 |
mycroft | Uncomment call to scsi_user_done(), and remove a duplicate biodone() (and another si_free()).
|
1.18 |
| 22-Nov-1994 |
deraadt | C botch repair from bostic
|
1.17 |
| 21-Nov-1994 |
mycroft | Replace dev_unit with device_softc in scsi_link. Change argument to foostart() to void*.
|
1.16 |
| 30-Aug-1994 |
deraadt | remove an un-aligned access
|
1.15 |
| 29-Jun-1994 |
deraadt | branches: 1.15.2; knf
|
1.14 |
| 29-Jun-1994 |
cgd | New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
1.13 |
| 09-May-1994 |
chopps | remove union's from sense_data struct, conditionaly define RAW_PART
|
1.12 |
| 20-Apr-1994 |
mycroft | Maintain the xs free list with LIST_*().
|
1.11 |
| 11-Apr-1994 |
mycroft | Fix various types. Remove some outdated flags. Actually sleep a bit if there are too many commands pending on the controller.
|
1.10 |
| 11-Apr-1994 |
mycroft | Combine scsi_start_unit() and scsi_stop_unit(), and increase the start timeout (again).
|
1.9 |
| 29-Mar-1994 |
mycroft | New SCSI system, based on Julian's more recent work.
|
1.8 |
| 16-Feb-1994 |
mycroft | Increase the timeout for start_unit.
|
1.7 |
| 14-Feb-1994 |
mycroft | PARANOID --> DIAGNOSTIC for inexpensive tests.
|
1.6 |
| 01-Feb-1994 |
mycroft | Add scsi_stop_unit(), from Mac code. Other minor nits.
|
1.5 |
| 13-Dec-1993 |
mycroft | 0xfe000000 --> KERNBASE
|
1.4 |
| 27-Nov-1993 |
mycroft | Remove remaining sleep()s.
|
1.3 |
| 25-Nov-1993 |
mycroft | Patch from Julian to fix hangage when opening a device multiple times.
|
1.2 |
| 24-Nov-1993 |
mycroft | Still under construction...
|
1.1 |
| 24-Nov-1993 |
mycroft | Under construction...
|
1.15.2.1 |
| 06-Oct-1994 |
mycroft | Update from trunk.
|
1.44.4.1 |
| 23-Aug-1997 |
thorpej | Update marc-pcmcia branch from trunk.
|
1.47.2.5 |
| 14-Oct-1997 |
thorpej | Update marc-pcmcia branch from trunk.
|
1.47.2.4 |
| 16-Sep-1997 |
thorpej | Update marc-pcmcia branch from trunk.
|
1.47.2.3 |
| 06-Sep-1997 |
thorpej | Update marc-pcmcia branch from trunk.
|
1.47.2.2 |
| 27-Aug-1997 |
thorpej | Update marc-pcmcia branch from trunk.
|
1.47.2.1 |
| 27-Aug-1997 |
thorpej | file scsi_base.c was added on branch marc-pcmcia on 1997-08-27 23:33:10 +0000
|
1.64.2.2 |
| 30-Jul-1998 |
mjacob | opt_scsiverbose.h now is opt_scsi.h and contains the defopted SCSIVERBOSE and the new ST_ENABLE_EARLYWARN.
|
1.64.2.1 |
| 30-Jul-1998 |
mjacob | file scsi_base.c was added on branch eeh-paddr_t on 1998-07-30 00:49:21 +0000
|
1.66.8.1 |
| 30-Nov-1999 |
itojun | bring in latest KAME (as of 19991130, KAME/NetBSD141) into kame branch just for reference purposes. This commit includes 1.4 -> 1.4.1 sync for kame branch.
The branch does not compile at all (due to the lack of ALTQ and some other source code). Please do not try to modify the branch, this is just for referenre purposes.
synchronization to latest KAME will take place on HEAD branch soon.
|
1.66.6.1 |
| 21-Jun-1999 |
thorpej | Sync w/ -current.
|
1.66.4.2 |
| 23-Jan-2000 |
he | Pull up revision 1.71 (requested by bouyer): Use SCSIPIRETRIES instead of hard-coded value '2' for number of retries in common routines, and define it as 4 so that ATAPI command will succeed after several downgrade.
|
1.66.4.1 |
| 24-Jun-1999 |
perry | pullup 1.66->1.67 (pk): deal with missing "raise interrupt level" code
|
1.69.6.1 |
| 27-Dec-1999 |
wrstuden | Pull up to last week's -current.
|
1.69.4.1 |
| 15-Nov-1999 |
fvdl | Sync with -current
|
1.69.2.4 |
| 20-Nov-2000 |
bouyer | Update thorpej_scsipi to -current as of a month ago A i386 GENERIC kernel compiles without the siop, ahc and bha drivers (will be updated later). i386 IDE/ATAPI and ncr work, as well as sparc/esp_sbus. alpha should work as well (untested yet). siop, ahc and bha will be updated once I've updated the branch to current -current, as well as machine-dependant code.
Main changes to the scsipi code itself: - add a scsipi_channel->type to allow umass to attach to both atapibus and scsibus. Will die when IDE is converted from ata_atapi_attach to scsipi_channel/scsipi_adapter - Add a chan_defquirks to scsipi_channel so that adapters can pass a default set of quirks to be set for each device attached - add adapt_getgeom and adapt_accesschk callbacks
|
1.69.2.3 |
| 01-Nov-1999 |
thorpej | Fixup the SC_DEBUG() stuff for the new world order.
|
1.69.2.2 |
| 20-Oct-1999 |
thorpej | Sync w/ trunk.
|
1.69.2.1 |
| 19-Oct-1999 |
thorpej | Completely rewritten scsipi_xfer execution engine: - All xfers are queued in the mid-layer, rather than doing so in an ad-hoc fashion in individual adapter drivers. - Adapter/channel resource management in the mid-layer, avoids even trying to start running an xfer if the adapter/channel doesn't have the resources. - Better communication between the mid-layer and the adapters. - Asynchronous event notification mechanism from adapter to mid-layer and peripherals. - Better peripheral queue management: freeze/thaw, sorted requeueing during recovery, etc. - Clean separation of peripherals, adapters, and adapter channels (no more scsipi_link). - Kernel thread for each scsipi_channel makes error recovery much easier (no more dealing with interrupt context when recovering from an error). - Mid-layer support for tagged queueing: commands can have the tag type set explicitly, tag IDs are allocated in the mid-layer (thus eliminating the need to use buggy tag ID allocation schemes in many adapter drivers).
There is a lot more work to do, but this correctly functions for the most part on several file servers I run.
|
1.73.6.4 |
| 08-Jan-2002 |
nathanw | Catch up to -current.
|
1.73.6.3 |
| 14-Nov-2001 |
nathanw | Catch up to -current.
|
1.73.6.2 |
| 24-Aug-2001 |
nathanw | Catch up with -current.
|
1.73.6.1 |
| 21-Jun-2001 |
nathanw | Catch up to -current.
|
1.74.2.2 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.74.2.1 |
| 03-Aug-2001 |
lukem | update to -current
|
1.77.18.1 |
| 11-Sep-2004 |
he | Pull up revisions 1.80-1.81 (via patch, requested by bouyer in ticket #837): Improve handling of memory shortage, to fix problems like: sd3(mpt0:0:1:0): unable to allocate scsipi_xfer sd3: not queued, error 12 The theory is that other consumers of pool memory is causing this memory shortage in certain somewhat hard to reproduce situations. This is done by giving scsipi_command an extra argument to optionally pass a preallocated scsipi_xfer, and allocating a scsipi_xfer before dequeueing a buffer in the various *start() functions. If the allocation of a scsipi_xfer fails, schedule a callout for delayed invocation of the start function. Also reserve one page for scsipi_xfer structs, to ensure that we will eventually have some available once pending commands complete. Should fix PR#25670.
|
1.77.16.5 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.77.16.4 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.77.16.3 |
| 03-Sep-2004 |
skrll | Sync with HEAD
|
1.77.16.2 |
| 25-Aug-2004 |
skrll | Sync with HEAD.
|
1.77.16.1 |
| 12-Aug-2004 |
skrll | Sync with HEAD.
|
1.85.22.2 |
| 10-Dec-2006 |
yamt | sync with head.
|
1.85.22.1 |
| 22-Oct-2006 |
yamt | sync with head
|
1.85.20.1 |
| 18-Nov-2006 |
ad | Sync with head.
|
1.87.48.1 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.88.4.1 |
| 16-May-2008 |
yamt | sync with head.
|
1.88.2.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.89.38.1 |
| 29-Apr-2012 |
mrg | sync to latest -current.
|
1.89.34.1 |
| 23-May-2012 |
yamt | sync with head.
|
1.90.20.1 |
| 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
1.90.16.2 |
| 28-Aug-2017 |
skrll | Sync with HEAD
|
1.90.16.1 |
| 05-Dec-2016 |
skrll | Sync with HEAD
|
1.90.2.1 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.91.8.1 |
| 21-Jun-2017 |
snj | Pull up following revision(s) (requested by mlelstv in ticket #53): sys/dev/scsipi/atapiconf.c: revision 1.91 sys/dev/scsipi/cd.c: revision 1.341 sys/dev/scsipi/scsi_base.c: revision 1.92 sys/dev/scsipi/scsiconf.c: revision 1.280 sys/dev/scsipi/scsipi_base.c: revisions 1.176, 1.177 sys/dev/scsipi/sd.c: revision 1.325 sys/dev/scsipi/ss.c: revision 1.89 sys/dev/scsipi/st.c: revision 1.231 The atapibus detach path did hold the channel mutex while calling into autoconf, which would trigger a panic when unplugging a USB ATAPI CDROM. Align detach code for scsibus and atapibus to fix this. Also avoid races when detaching devices by replacing callout_stop with callout_halt. -- pass config_detach error to caller.
|
1.92.6.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|