Age | Commit message (Collapse) | Author |
|
member of 'struct scsi_xfer' has always been pointed at the 'struct scsi_generic
cmdstore' member of the same instance. So nuke 'cmdstore' and remove the '*'
from cmd. Take the address of cmd as required by the various casts.
No intentional functional change.
luna88k test by aoyama@, sparc64 test by jmatthew@
Identification of 2009's last *cmd use and ok jmatthew@
|
|
uses in drivers.
Use AHD_DEBUG/AHC_DEBUG sections like all the other debug output does. Don't
#include scsi_debug.h.
|
|
fields to struct scsibus_attach_args. Nuke the struct scsi_link *
(saa_sc_link) in scaibus_attach_args.
Explicitly initialize each field in scsibus_attach_args variables.
|
|
adapter_buswidth, adapter_softc) from struct scsi_link to struct
scsibus_attach_args.
Additional compile tests by jmatthew@ (sparc64) and aoyam@ (luna88k).
|
|
In sparc64 autoconf access 'luns' via sb_luns and 'adapter_buswidth'
via sb_adapter_buswidth.
Removes last post-config uses of the copies of bus related
information in scsi_link.
|
|
(scsi_link.adapter_softc) to a pointer of a particular softc type.
|
|
statement. All to make upcoming diff(s) smaller and easier to read.
|
|
even more concentrated just before config_found().
|
|
immediately before initializing the only field in the struct.
|
|
value minphys() uses (MAXPHYS) are pointless since minphys() is always
called after the *_minphys() function.
MAXPHYS (64 * 1024) == 16 * 4096. 4096 is the smallest PAGE_SIZE we
have. So a *_minphys() function that caps the i/o size at N *
PAGE_SIZE where N is > 16 is just wasting cycles.
Nuke adv_minphys (40 * PAGE_SIZE), adw_minphys (254 * PAGE_SIZE),
ahc_minphys (128 * PAGE_SIZE), ahd_minphys (128 * PAGE_SIZE),
ami_minphys (26 * PAGE_SIZE), cac_minphys (65535 (!!!) * 512),
iha_minphsy (32 * PAGE_SIZE), trm_minphys (31 * PAGE_SIZE),
twe_minphys (62 * PAGE_SIZE). uha_minphys (32 * PAGE_SIZE),
|
|
|
|
system minphys(). scsi_minphys() will do that and cd/sd/st will call
scsi_minphys().
ok jmatthew@ as part of larger diff
|
|
in drivers. Terse one liners, NULLs instead of 0's, explicitly specify
all members, etc.
Nuke #ifdef notyet blocks related to the scsi_adapter in aic.
No intentional functional change.
ok tedu@
|
|
made empty. Found by new ctfconv(1) feature and validated by clang.
ok mpi@
|
|
everybody gets to test!
|
|
all the local ones to ``nticks''.
ok stefan@, deraadt@
|
|
reading this code. No intentional functional change.
|
|
after discussions with beck deraadt kettenis.
|
|
not XS_NO_CCB.
discussed with krw@ who agrees
|
|
cleaning up some shutdown-hook related code on the way.
(A few drivers related to sparc are still skipped at kettenis' request)
ok kettenis mlarkin, tested by many others too
|
|
ok guenther millert kettenis
|
|
from Tobias Ulmer (tobiasu at tmux.org); ok jmc@, krw@
|
|
step in elminating 'struct scsi_device' entirely.
Spotted and initial diff from matthew@.
ok matthew@ dlg@ deraadt@ marco@ miod@
|
|
void. Use XS_NO_CCB error in the scsi command (xs) to report the
NO_CCB condition. Eliminates all SUCCESSFULLY_QUEUED and COMPLETE
confusion and untangles the midlayer from the adapter a bit more.
Eyes and some fixes by miod@
There may be some compile issues on little used (i.e. I don't have
any) drivers but the change is mechanical and thus easy to remedy.
ok dlg@
|
|
endlessly. Use the shiny new XS_NO_CCB instead to retry commands
that can't start. Neither dlg@ nor I can figure out why 4.6 and
earlier worked.
Problem noted, debugged with and fix tested by Jeff Ross and his
new external enclosure. Thanks!
ok dlg@
|
|
in the drivers just before calling scsi_done().
ok dlg@ beck@
|
|
TRY_AGAIN_LATER uses with equivalent NO_CCB. Eliminates confusion
between the two as was always intended. buf I/O's that can't be
started get pushed back onto the front of the queue and retried.
Others get sent back to originator as failures. No more epi-cycle
looping inside the SCSI midlayer hoping the problem goes away.
Various testers, no objection from miod@ as vs(4) was tested by
nick@.
|
|
as additional argument. This will allow intermediate layers between
scsi devices such as sd and scsi host adapters to take appropriate
action if necessary.
|
|
No functional changes.
ok krw@ miod@
|
|
|
|
"I'm all for it." marco@ "Yeah" deraadt@
|
|
damned sure scsi_done is invoked at splbio. Noted by deraadt@.
|
|
|
|
ok miod@ marco@ deraadt@
|
|
often rely on the detach routine for cleanup. So be consistant and
careful by checking for a NULL hook before calling *hook_disestablish
in detach routines.
ok mickey@ brad@ dlg@
|
|
ah[cd]_done() into XS_* values understood by the SCSI code before
returning xs to the tender mercies of the SCSI code.
So if we bail out without calling ah[cd]_done(), because the request
cdb length is excessive, don't use ah[cd]_set_transaction() to put
CAM_REQ_INVALID into xs->error, just jam in XS_DRIVER_STUFFUP as
ah[cd]_done() would have. If CAM_REQ_INVALID escapes it will be
interpreted as XS_SHORT_SENSE as far as I can tell.
This code path should never be trod so the net effect should be
minimal.
|
|
based timeout handling. Use the simple timeout == bus reset model
instead. Also move verbose debug output inside #ifdef/#endif.
Fixes immediate crashes on encountering a timeout.
Noted by per englebrecht when trying 'smartctl -d scsi -a /dev/rsd0c'.
Thanks to per englebrecht and luiz gustavo for testing.
Should only impact timeout handling. No change to normal processing.
ok marco@
|
|
scsi_done() can release the scsi_request xs and TRY_AGAIN_LATER will
refer to it and submit it for re-execution. This was being done only
if bus_dmamap_load() failed.
Ensure the controller resources are freed before returning
TRY_AGAIN_LATER, since new resources will be allocated when the
command is executed again.
Don't bother setting xs->error before returning TRY_AGAIN_LATER as the
code returned to sets xs->error to XS_BUSY.
ok marco@
|
|
aic79xx_osm.c r1.22 fix by gibbs.
|
|
handling which will at least try to recover.
ok marco@.
|
|
ok marco@.
|
|
devices.
Tidy up man page, remove lies and cruft.
ok marco@.
|
|
functional change.
|
|
valid and don't call ahd_setup_data() after ahd_execute_scb() may have
freed the scb.
|
|
ok tdeval@.
|
|
manually reproducing bits in ahd_pci.c.
Just as in ahc, avoid allocating and freeing zero length bits of
memory for platform data.
Don't try to free all or part of ahd_softc, but correctly free
allocated memory for seep_config if necessary.
Add a final few fields to ahd_softc and scb in preparation for
updating/fixing timeout handling.
No functional changes.
|
|
functions, and ultra-conservative calculations, to avoid possible
overflow issues. Also consistant with values passed in scsi requests.
Whitespace and comment tweaks.
Update FreeBSD tags now that we are sync'd to the latest version.
From FreeBSD aic79xx.c r1.33, aic79xx.h r1.23, aic_osm_lib.h r1.4.
|
|
line and zero line functions. Fix a potential bug
(ahd_set_transaction_status was used where ahd_set_scsi_status was
intended) inside a currently #ifdef 0/#endif section of code.
No functional changes intended except for a bit of extra locking via
ahd_list_lock*.
ok marco@.
|
|
variable shuffle. No functional change.
|
|
the fallout from that. Ensure pcireg_t variables are being used with
pci_conf_read/write functions - found one uint16_t variable
(pcix_status) being used to store and restore (32 bit) pcireg_t
values.
Some KNF.
No functional changes.
|