| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
appropriate spots. Don't copy one empty/unused scsi_link (channel) to
another empty/unused scsi_link (channel_b)
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
and easier to read.
|
|
|
|
| |
off. Sigh.
|
|
|
|
| |
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!
|
|
|
|
| |
reading this code. No intentional functional change.
|
|
|
|
| |
after discussions with beck deraadt kettenis.
|
|
|
|
|
|
| |
not XS_NO_CCB.
discussed with krw@ who agrees
|
|
|
|
|
|
| |
is causing problems when trying to boot sparc64 from an isp(4).
Verified to fix the sparc64/isp(4) regression by krw@; ok deraadt@
|
|
|
|
|
|
|
|
| |
something. Doesn't matter right now because scsibus_attach_args only
has one field and it's mandatory, but I'm planning to move some more
fields from scsi_link to scsibus_attach_args+scsibus_softc.
ok dlg@
|
|
|
|
|
|
|
|
|
| |
scsi_link::scsibus hack to determine which channel the link is
associated with.
"looks sane" dlg@, but haven't found any testers yet; committing so
further SCSI refactorings can go in. dlg@ or I will back out or fix
if anything breaks.
|
|
|
|
|
|
|
|
| |
step in elminating 'struct scsi_device' entirely.
Spotted and initial diff from matthew@.
ok matthew@ dlg@ deraadt@ marco@ miod@
|
|
|
|
|
|
|
|
|
|
|
| |
error to the midlayer if something screws up.
scrub the code slightly while here.
this plus src/sys/scsi/scsi_base.c r1.174 seems to fix problems henning has
had with tape drives plugged into ahc.
tested by and ok henning@
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
| |
ok dlg@
|
|
|
|
| |
damned sure scsi_done is invoked at splbio. Noted by deraadt@.
|
| |
|
|
|
|
|
| |
it's declaration and only use inside #ifndef DEBUG too. Lets DEBUG
kernel compile again. Non-DEBUG kernel still compiles too.
|
|
|
|
|
|
|
| |
resolves to s = splbio() and ahc_unlock() which resolves to splx(s)
with splbio/splx calls.
ok marco@ dlg@
|
|
|
|
| |
ok miod@ marco@ deraadt@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 pulling out a raidctl disk causing a crash noted by kurt@.
Rebuilding the raid still problematic.
Reduces but does not eliminate crashes with 'smartctl -d scsi -a
/dev/rcd0c' seen by Sigfried H?versen.
Should only impact timeout handling. No change to normal processing.
Thanks to kurt@ and Sigfied for testing.
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@
|
|
|
|
|
|
|
|
|
| |
false until scsi bus b is initialized.
Set TWIN_CHNLB bit that is used elsewhere. Missed chunk from last code
sync.
Problem found and fixes tested on HP Proliant ML310 by Valov Oleg.
|
|
|
|
|
|
| |
scb may have been freed or made active. Only affects XS_RESET case.
More correctly mirrors FreeBSD code. Already done to aic79xx_openbsd.c
in r1.16.
|
|
|
|
| |
ok krw@
|
|
|
|
| |
ok marco@.
|
|
|
|
|
|
|
|
|
|
| |
come with the freebsd sources, rather than duplicating those names in
the ahd_ and ahc_ namespaces. Big reduction in delta to freebsd
sources, which reduces noise when updating the code.
No .o differences found on i386.
ok marco@.
|
| |
|
|
|
|
|
|
| |
Restore hppa functionality, add sgi functionality for ahc.
ok deraadt@, plus marco@, mickey@, pefo@ for various bits.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
gibbs@freebsd.
Large commit messages detailing all changes can be read at revisions
1.97 and 1.100 of aic7xxx.c:
www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/aic7xxx/aic7xxx.c
Tested by marco, nate and pefo. Fixed broken system for nate.
ok marco@
|