History log of /src/sys/dev/scsipi/st_scsi.c |
Revision | | Date | Author | Comments |
1.37 |
| 24-Aug-2015 |
pooka | would you like some freshly ground _KERNEL_OPT with that? yes? excellent choice, sir/madam.
|
1.36 |
| 18-Oct-2014 |
snj | branches: 1.36.2; src is too big these days to tolerate superfluous apostrophes. It's "its", people!
|
1.35 |
| 19-Apr-2012 |
bouyer | branches: 1.35.2; Expand struct scsipi_bustype {} in a ABI-backward-compatible way to pass more informations about the bus: - bustype_type has 2 different bytes, one holding the existing SCSIPI_BUSTYPE_* (scsi, atapi, ata), and one for a per-SCSIPI_BUSTYPE_* subtype. Introduce macros to build or extract bustype_type. - for SCSIPI_BUSTYPE_SCSI, define subtypes for parallel SCSI, Fibre Channel, SAS and USB, to specify the transport method. SCSIPI_BUSTYPE_SCSI_PSCSI is 0 so that bustype_type value doesn't change for existing code - for non-SCSIPI_BUSTYPE_SCSI busses there's no defined subtype yet, so the bustype_type value doesn't change. - provide scsi_fc_bustype, scsi_sas_bustype and scsi_usb_bustype along with scsi_bustype to be used by bus driver where appropriate - scsipi_print_xfer_mode(): more existing code under a (SCSIPI_BUSTYPE_SCSI, SCSIPI_BUSTYPE_SCSI_PSCSI) case, as sync/wide parameters only make sense for parallel SCSI. For (SCSIPI_BUSTYPE_SCSI, SCSIPI_BUSTYPE_SCSI_FC) and (SCSIPI_BUSTYPE_SCSI, SCSIPI_BUSTYPE_SCSI_SAS), only print tagged queing status if enabled. Just be silent for other bustypes.
This change is prompted by this problem: right now, FC (e.g. isp(4)) and SAS (e.g. mfi(4)) don't do anything for ADAPTER_REQ_SET_XFER_MODE, and especially never call scsipi_async_event(ASYNC_EVENT_XFER_MODE), so sd(4) always runs untagged. Doing a scsipi_async_event(ASYNC_EVENT_XFER_MODE) with appropriate parameters is enough to enable tagged queuing, but then scsipi will print: sd0: async, 8-bit transfers, tagged queueing which is harmless (async, 8-bit transfers doens't make sense on SAS anyway) but will confuse users. With this change scsipi will only print: sd0: tagged queueing which is correct.
In the long run, knowning the underlying transport in scsipi will allow better handling of device which are not parallel SCSI.
Another change adding an extra callback to struct scsipi_bustype {} will come (so that scsipi_print_xfer_mode(), which is SCSI-specific, can be moved out of scsipi_base, and split into per-subtype callback), but this will break kernel ABI and so is not suitable for netbsd-6, so will be commmited later. The above is enough to get tagged queuing on FC and SAS in netbsd-6.
|
1.34 |
| 28-Feb-2012 |
mbalmer | Convert st(4) to device_t, while here clean up the code and use uintXX_t instead of u_intXX_t.
|
1.33 |
| 02-Feb-2012 |
tls | branches: 1.33.2; Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
1.32 |
| 06-Dec-2009 |
dyoung | branches: 1.32.12; 1.32.16; Delete do-nothing device-activation hooks.
|
1.31 |
| 21-Oct-2009 |
rmind | Remove uarea swap-out functionality:
- Addresses the issue described in PR/38828. - Some simplification in threading and sleepq subsystems. - Eliminates pmap_collect() and, as a side note, allows pmap optimisations. - Eliminates XS_CTL_DATA_ONSTACK in scsipi code. - Avoids few scans on LWP list and thus potentially long holds of proc_lock. - Cuts ~1.5k lines of code. Reduces amd64 kernel size by ~4k. - Removes __SWAP_BROKEN cases.
Tested on x86, mips, acorn32 (thanks <mpumford>) and partly tested on acorn26 (thanks to <bjh21>).
Discussed on <tech-kern>, reviewed by <ad>.
|
1.30 |
| 15-Aug-2009 |
pgoyette | 1. Move the mode_select functionality into common code (in st.c) and invoke the common routine for both scsi and atapi tapes.
2. Replace a numeric constant with some sizeof's when calculating the size of the mode_select command buffer, clear the entire buffer, and KASSERT to ensure the page_0_size loaded from quirk table is valid.
3. Add a quirk for my Seagate Travan-40 tape drive.
As discussed on tech-kern@
Addresses my PR kern/34832
|
1.29 |
| 12-May-2009 |
cegger | struct device * -> device_t, no functional changes intended.
|
1.28 |
| 12-May-2009 |
cegger | struct cfdata * -> cfdata_t, no functional changes intended.
|
1.27 |
| 28-Apr-2008 |
martin | branches: 1.27.14; Remove clause 3 and 4 from TNF licenses
|
1.26 |
| 16-Nov-2006 |
christos | branches: 1.26.48; 1.26.50; 1.26.52; __unused removal on arguments; approved by core.
|
1.25 |
| 12-Oct-2006 |
christos | - sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
1.24 |
| 30-Mar-2006 |
thorpej | branches: 1.24.8; 1.24.10; Use device_private().
|
1.23 |
| 11-Dec-2005 |
christos | branches: 1.23.4; 1.23.6; 1.23.8; 1.23.10; 1.23.12; merge ktrace-lwp.
|
1.22 |
| 30-May-2005 |
christos | branches: 1.22.2; - remove bogus casts - add more const
|
1.21 |
| 27-Feb-2005 |
perry | nuke trailing whitespace
|
1.20 |
| 21-Feb-2005 |
thorpej | Part 1 of a cleanup pass over the SCSI subsystem. The aim is to name everything "scsi_*", since we really are talking about the SCSI command set, ATAPI transport not withstanding. Improve the names of many structures, and prepend "SCSI_" onto all SCSI command opcodes. Place items described by the SCSI Primary Commands document into scsi_spc.h.
|
1.19 |
| 01-Feb-2005 |
reinoud | Backing out changes to clean up scsipi. I was pointed out there were problems i hadn't seen. To prevent lossage i'd decided to back off all changes and let them be reviewed on tech-kern.
|
1.18 |
| 31-Jan-2005 |
reinoud | Part of the cleanup of sys/scsipi's use of types; rename all u_int* to uint* and change the u_long's to uint32_t's where possible. Note that the iocl definitions/hooks have to be ulong (or u_long) or they'll bomb out.
|
1.17 |
| 31-Jan-2005 |
reinoud | As part of cleaning up sys/scsipi, replace all u_char by uint8_t and replace all `short' with int16_t.
|
1.16 |
| 28-Oct-2004 |
yamt | branches: 1.16.4; 1.16.6; move buffer queue related stuffs from buf.h to their own header, bufq.h.
|
1.15 |
| 18-Sep-2004 |
mycroft | Minor rearrangement. Whitespace and #include cleanup.
|
1.14 |
| 18-Sep-2004 |
mycroft | Standardize some variable names and the calling pattern for scsipi_command(). Use void pointer casts.
|
1.13 |
| 17-Sep-2004 |
mycroft | Remove the "xfer" argument to scsipi_command().
|
1.12 |
| 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.11 |
| 21-Aug-2004 |
thorpej | Use ANSI function decls and make use of static.
|
1.10 |
| 02-Oct-2002 |
thorpej | branches: 1.10.6; 1.10.8; Add trailing ; to CFATTACH_DECL.
|
1.9 |
| 30-Sep-2002 |
thorpej | Use CFATTACH_DECL().
|
1.8 |
| 27-Sep-2002 |
thorpej | Declare all cfattach structures const.
|
1.7 |
| 07-Dec-2001 |
yamt | add detach support for st.
|
1.6 |
| 15-Nov-2001 |
lukem | don't need <sys/types.h> when including <sys/param.h>
|
1.5 |
| 13-Nov-2001 |
lukem | add RCSIDs
|
1.4 |
| 18-Jul-2001 |
thorpej | bcopy -> memcpy
|
1.3 |
| 18-Jul-2001 |
thorpej | bzero -> memset
|
1.2 |
| 18-Jun-2001 |
bouyer | branches: 1.2.2; 1.2.4; Snapshot of ATAPI tapes support. Known to be able to read/write to tape with: st0 at atapibus0 drive 1: <Seagate STT8000A, , 5.51> type 1 sequential removable Major changes may still happen in order to properly support other ATAPI tape drives.
|
1.1 |
| 04-May-2001 |
bouyer | Add an ATAPI front-end to the st driver. Completely untested for now, but st at scsi should still work :)
|
1.2.4.3 |
| 10-Oct-2002 |
jdolecek | sync kqueue with -current; this includes merge of gehenna-devsw branch, merge of i386 MP branch, and part of autoconf rototil work
|
1.2.4.2 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.2.4.1 |
| 03-Aug-2001 |
lukem | update to -current
|
1.2.2.6 |
| 18-Oct-2002 |
nathanw | Catch up to -current.
|
1.2.2.5 |
| 08-Jan-2002 |
nathanw | Catch up to -current.
|
1.2.2.4 |
| 14-Nov-2001 |
nathanw | Catch up to -current.
|
1.2.2.3 |
| 24-Aug-2001 |
nathanw | Catch up with -current.
|
1.2.2.2 |
| 21-Jun-2001 |
nathanw | Catch up to -current.
|
1.2.2.1 |
| 18-Jun-2001 |
nathanw | file st_scsi.c was added on branch nathanw_sa on 2001-06-21 20:06:07 +0000
|
1.10.8.1 |
| 11-Sep-2004 |
he | Pull up revision 1.12 (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.10.6.6 |
| 10-Nov-2005 |
skrll | Sync with HEAD. Here we go again...
|
1.10.6.5 |
| 04-Mar-2005 |
skrll | Sync with HEAD.
Hi Perry!
|
1.10.6.4 |
| 02-Nov-2004 |
skrll | Sync with HEAD.
|
1.10.6.3 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.10.6.2 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.10.6.1 |
| 25-Aug-2004 |
skrll | Sync with HEAD.
|
1.16.6.1 |
| 19-Mar-2005 |
yamt | sync with head. xen and whitespace. xen part is not finished.
|
1.16.4.1 |
| 29-Apr-2005 |
kent | sync with -current
|
1.22.2.2 |
| 30-Dec-2006 |
yamt | sync with head.
|
1.22.2.1 |
| 21-Jun-2006 |
yamt | sync with head.
|
1.23.12.1 |
| 31-Mar-2006 |
tron | Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
|
1.23.10.1 |
| 19-Apr-2006 |
elad | sync with head.
|
1.23.8.1 |
| 01-Apr-2006 |
yamt | sync with head.
|
1.23.6.1 |
| 22-Apr-2006 |
simonb | Sync with head.
|
1.23.4.1 |
| 09-Sep-2006 |
rpaulo | sync with head
|
1.24.10.2 |
| 10-Dec-2006 |
yamt | sync with head.
|
1.24.10.1 |
| 22-Oct-2006 |
yamt | sync with head
|
1.24.8.1 |
| 18-Nov-2006 |
ad | Sync with head.
|
1.26.52.4 |
| 11-Mar-2010 |
yamt | sync with head
|
1.26.52.3 |
| 19-Aug-2009 |
yamt | sync with head.
|
1.26.52.2 |
| 16-May-2009 |
yamt | sync with head
|
1.26.52.1 |
| 16-May-2008 |
yamt | sync with head.
|
1.26.50.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.26.48.1 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.27.14.1 |
| 13-May-2009 |
jym | Sync with HEAD.
Commit is split, to avoid a "too many arguments" protocol error.
|
1.32.16.5 |
| 29-Apr-2012 |
mrg | sync to latest -current.
|
1.32.16.4 |
| 06-Mar-2012 |
mrg | sync to -current
|
1.32.16.3 |
| 06-Mar-2012 |
mrg | sync to -current
|
1.32.16.2 |
| 04-Mar-2012 |
mrg | sync to latest -current.
|
1.32.16.1 |
| 18-Feb-2012 |
mrg | merge to -current.
|
1.32.12.2 |
| 23-May-2012 |
yamt | sync with head.
|
1.32.12.1 |
| 17-Apr-2012 |
yamt | sync with head
|
1.33.2.2 |
| 23-Apr-2012 |
riz | Pull up following revision(s) (requested by bouyer in ticket #192): sys/dev/scsipi/cd.c: revision 1.307 sys/dev/scsipi/scsiconf.c: revision 1.266 sys/dev/scsipi/sd.c: revision 1.298 sys/dev/scsipi/st_scsi.c: revision 1.35 sys/dev/scsipi/atapiconf.c: revision 1.85 sys/dev/scsipi/scsipiconf.h: revision 1.120 sys/dev/usb/umass_scsipi.c: revision 1.44 sys/dev/scsipi/scsiconf.h: revision 1.57 sys/dev/scsipi/st_atapi.c: revision 1.29 sys/dev/scsipi/scsipi_base.c: revision 1.158 sys/dev/scsipi/st.c: revision 1.221 sys/dev/scsipi/scsipi_ioctl.c: revision 1.67 Expand struct scsipi_bustype {} in a ABI-backward-compatible way to pass more informations about the bus: - bustype_type has 2 different bytes, one holding the existing SCSIPI_BUSTYPE_* (scsi, atapi, ata), and one for a per-SCSIPI_BUSTYPE_* subtype. Introduce macros to build or extract bustype_type. - for SCSIPI_BUSTYPE_SCSI, define subtypes for parallel SCSI, Fibre Channel, SAS and USB, to specify the transport method. SCSIPI_BUSTYPE_SCSI_PSCSI is 0 so that bustype_type value doesn't change for existing code - for non-SCSIPI_BUSTYPE_SCSI busses there's no defined subtype yet, so the bustype_type value doesn't change. - provide scsi_fc_bustype, scsi_sas_bustype and scsi_usb_bustype along with scsi_bustype to be used by bus driver where appropriate - scsipi_print_xfer_mode(): more existing code under a (SCSIPI_BUSTYPE_SCSI, SCSIPI_BUSTYPE_SCSI_PSCSI) case, as sync/wide parameters only make sense for parallel SCSI. For (SCSIPI_BUSTYPE_SCSI, SCSIPI_BUSTYPE_SCSI_FC) and (SCSIPI_BUSTYPE_SCSI, SCSIPI_BUSTYPE_SCSI_SAS), only print tagged queing status if enabled. Just be silent for other bustypes. This change is prompted by this problem: right now, FC (e.g. isp(4)) and SAS (e.g. mfi(4)) don't do anything for ADAPTER_REQ_SET_XFER_MODE, and especially never call scsipi_async_event(ASYNC_EVENT_XFER_MODE), so sd(4) always runs untagged. Doing a scsipi_async_event(ASYNC_EVENT_XFER_MODE) with appropriate parameters is enough to enable tagged queuing, but then scsipi will print: sd0: async, 8-bit transfers, tagged queueing which is harmless (async, 8-bit transfers doens't make sense on SAS anyway) but will confuse users. With this change scsipi will only print: sd0: tagged queueing which is correct. In the long run, knowning the underlying transport in scsipi will allow better handling of device which are not parallel SCSI. Another change adding an extra callback to struct scsipi_bustype {} will come (so that scsipi_print_xfer_mode(), which is SCSI-specific, can be moved out of scsipi_base, and split into per-subtype callback), but this will break kernel ABI and so is not suitable for netbsd-6, so will be commmited later. The above is enough to get tagged queuing on FC and SAS in netbsd-6.
|
1.33.2.1 |
| 02-Mar-2012 |
riz | Pull up following revision(s) (requested by mbalmer in ticket #64): sys/dev/scsipi/stvar.h: revision 1.24 sys/dev/scsipi/st_scsi.c: revision 1.34 sys/dev/scsipi/st_atapi.c: revision 1.28 sys/dev/scsipi/st.c: revision 1.220 Convert st(4) to device_t, while here clean up the code and use uintXX_t instead of u_intXX_t.
|
1.35.2.1 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.36.2.1 |
| 22-Sep-2015 |
skrll | Sync with HEAD
|