| #
fbffadb9 |
| 03-Feb-2019 |
mrg <mrg@NetBSD.org> |
- add or adjust /* FALLTHROUGH */ where appropriate - add __unreachable() after functions that can return but won't in this case, and thus can't be marked __dead easily
|
| #
f0a7346d |
| 18-Oct-2014 |
snj <snj@NetBSD.org> |
src is too big these days to tolerate superfluous apostrophes. It's "its", people!
|
| #
ce099b40 |
| 28-Apr-2008 |
martin <martin@NetBSD.org> |
Remove clause 3 and 4 from TNF licenses
|
| #
13783bfd |
| 05-Apr-2008 |
cegger <cegger@NetBSD.org> |
use aprint_*_dev and device_xname
|
| #
95e1ffb1 |
| 11-Dec-2005 |
christos <christos@NetBSD.org> |
merge ktrace-lwp.
|
| #
3acb3fe6 |
| 29-May-2005 |
christos <christos@NetBSD.org> |
- Sprinkle const - Avoid variable shadowing. - Eliminate some caddr_t abuse.
|
| #
df9803ce |
| 21-Feb-2005 |
thorpej <thorpej@NetBSD.org> |
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
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.
show more ...
|
| #
ba781da1 |
| 17-Sep-2004 |
mycroft <mycroft@NetBSD.org> |
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/PRE
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.
show more ...
|
| #
4849b821 |
| 09-Sep-2004 |
bouyer <bouyer@NetBSD.org> |
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 sc
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.
show more ...
|
| #
80620a83 |
| 27-Aug-2004 |
bouyer <bouyer@NetBSD.org> |
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 p
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.
show more ...
|
| #
6cb9b748 |
| 21-Aug-2004 |
thorpej <thorpej@NetBSD.org> |
Use ANSI function decls and make use of static.
|
| #
567e3c10 |
| 10-Mar-2004 |
bouyer <bouyer@NetBSD.org> |
Decrease xs_retries before retrying aborted commands, and report EIO if it reaches 0. Avoids looping on aborded command in some special cases.
|
| #
25656462 |
| 15-Nov-2001 |
lukem <lukem@NetBSD.org> |
don't need <sys/types.h> when including <sys/param.h>
|
| #
7ba10b35 |
| 13-Nov-2001 |
lukem <lukem@NetBSD.org> |
add RCSIDs
|
| #
bc980d7e |
| 14-May-2001 |
bouyer <bouyer@NetBSD.org> |
Use SCSI/ATAPI common definition for MODE_{SELECT,SENSE}{,_BIG}. Define functions to send theses commands in scsipi_base.c and use them instead of ad-hoc commands setups.
|
| #
937a7a3e |
| 25-Apr-2001 |
bouyer <bouyer@NetBSD.org> |
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 a
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
show more ...
|
| #
16a9d90e |
| 30-Sep-1999 |
thorpej <thorpej@NetBSD.org> |
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 asynchrono
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.
show more ...
|
| #
61f3c935 |
| 28-Aug-1999 |
thorpej <thorpej@NetBSD.org> |
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.
|
| #
59da37b3 |
| 25-Jun-1999 |
thorpej <thorpej@NetBSD.org> |
Go to splbio() when calling scsipi_free_xs(), just like the SCSI counterpart. Fixes PR #7853, Paul Dokas <dokas@cs.umn.edu>.
|
| #
0d0ff884 |
| 17-Nov-1998 |
bouyer <bouyer@NetBSD.org> |
In atapi_wdc.c, issue a 'REQUEST SENSE' command when appropriate. Return XS_SENSE when the full sense info has been retrieved, or XS_SHORTSENSE if only the sense key was available (from the error reg
In atapi_wdc.c, issue a 'REQUEST SENSE' command when appropriate. Return XS_SENSE when the full sense info has been retrieved, or XS_SHORTSENSE if only the sense key was available (from the error register) Make atapi_interpret_sense() deal with this, and call scsipi_interpret_sense() for XS_SENSE. (XXX sd_interpret_sense() and the ioctl code needs to be made aware of XS_SHORTSENSE too ! sense hanlding for these is now less broken for devices that support 'REQUEST SENSE') All the ATAPI devices I have access to seems to honnor the SENSE_REQUEST command, but I suspect some ATAPI devices will not (althouh it's mandatory). The code should be able to deal with this, but is untested ...
show more ...
|
| #
19fddaee |
| 12-Oct-1998 |
bouyer <bouyer@NetBSD.org> |
Merge bouyer-ide
|
| #
6dc90320 |
| 15-Aug-1998 |
mycroft <mycroft@NetBSD.org> |
Assign my copyrights to TNF.
|
| #
bf29f419 |
| 15-Jul-1998 |
mjacob <mjacob@NetBSD.org> |
part of fix for kern/3835: use of enumerated returns from target sense handlers
|
| #
0978d23c |
| 11-Jul-1998 |
mjacob <mjacob@NetBSD.org> |
Clarify that Sense Key 1 is a "RECOVERED ERROR"- not just an error.
|
| #
6aa030f9 |
| 01-Jul-1998 |
mjacob <mjacob@NetBSD.org> |
Use new Sense Key defines (for clarity)
|