| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
| |
these controllers let you specify disks that should be accessed directly
rather than be part of logical volumes. apparently you can plug in things
like tape drives too.
anyway, physical devices are exposed via a separate scsibus attached to
mfi.
ok mikeb@
|
|
|
|
|
|
|
| |
timeouts. how embarrassment.
implement mfi_exec for doing sync executions of commands in process
contexts and cut mfi_mgmt over to it.
|
|
|
|
|
|
|
| |
calling the done handler.
this makes it consistently complete scsi io with all the proper error
checking.
|
|
|
|
| |
as the first argument to functions. like mfii.
|
|
|
|
|
| |
on the free list. ccbs can be reused, so we dont want old state screwing up
new commands.
|
|
|
|
| |
rather than put the code everywhere.
|
| |
|
|
|
|
|
|
| |
than snoop scsi commands and copy it in an io path.
no functional change, but the code has one less XXX now.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of its scsibus. only advertise 1 lun on logical volumes instead of letting
the midlayer fix it up to 8.
give every target on the bus max_cmds openings. iopools means they will
properly share access to them.
this in particular is useful on skinny controllers which only advertise 31
command slots. if you have 16 volumes, theyll only get 1 opening each with
the old maths. this way round the ones that are busy will share the slots.
tested on a perc5 with two volumes and hard workloads.
|
|
|
|
| |
ok deraadt@
|
|
|
|
|
|
| |
transition_firmware into a member of the iop structures.
ok mikeb@ haesbaert@
|
|
|
|
|
|
|
|
|
|
| |
structures and use htole64 instead of htole32(addr >> 32); htole32(addr);
gets rid of "handy" stack variables to get the dva to 64bits.
sprinkle some more byte swaps for things that should have it.
tested on a perc5 (xscale)
|
|
|
|
| |
tested on a perc5 (xscale)
|
|
|
|
|
|
|
|
|
| |
descriptors with single uint64_ts. theyre not some weird middle
endian thing. this makes the code more readable.
add some missing htole32s to the code while here.
tested on a perc5 (xscale).
|
|
|
|
|
|
| |
endian. do appropriate byteswapping for when the host cpu uses them.
tested on a perc5 (xscale) in an amd64.
|
|
|
|
|
| |
from Alexey Suslikov
reviewed by marco
|
|
|
|
|
|
| |
is causing problems when trying to boot sparc64 from an isp(4).
Verified to fix the sparc64/isp(4) regression by krw@; ok deraadt@
|
|
|
|
|
|
| |
saa_luns instead of adapter_buswidth and luns in the prototype link.
ok dlg@, miod@
|
|
|
|
| |
ok deraadt
|
|
|
|
|
|
| |
is 0.
ok deraadt.
|
| |
|
|
|
|
| |
prompted by deraadt
|
|
|
|
| |
prodded and ok deraadt
|
|
|
|
|
|
|
|
|
|
|
|
| |
this gets rid of NO_CCB, provides better scheduling of io between busy
logical volumes on the same controller, and makes the ioctl and sensor
paths more reliable.
this is the least intrusive version of this change i could come up with. it
only took 4 or 5 goes...
ok marco@
deraadt@ says this is a good time for this change.
|
| |
|
|
|
|
| |
ok dlg@ matthew@
|
|
|
|
|
|
|
|
|
|
| |
back from the chip on a command then the command completely failed.
MFI_STAT_SCSI_DONE_WITH_ERROR really means the command completed
fine, but there's some sense data too. this tweaks the handling to
be more appropriate, as per the linux and solaris drivers.
timed out waiting for beck@
putting this in cos its obviously more correct than the current code.
|
|
|
|
|
|
|
| |
xs->cmdstore.
ok krw@ a while back (contingent upon testing), and deraadt@ says this
has been in snapshots for weeks now.
|
|
|
|
|
|
| |
sparsely populated buses.
ok dlg@, krw@
|
|
|
|
| |
ok krw, discontent grunts from marco.
|
|
|
|
|
|
|
|
| |
step in elminating 'struct scsi_device' entirely.
Spotted and initial diff from matthew@.
ok matthew@ dlg@ deraadt@ marco@ miod@
|
|
|
|
|
|
|
| |
ioctl requests, and dont pass the proc pointers around for any ioctl
requests in scsi land at all. neither were used, so trim the fat.
ok krw@ marco@
|
|
|
|
|
|
|
| |
low-hanging splbio/splx pairs that are no longer needed and see if
this reveals any hidden scsi flaws.
ok dlg@
|
|
|
|
|
|
|
| |
copying vendor[8]/product[16]/revision[4] out of struct scsi_inquiry_data
together with one memcopy.
ok krw
|
|
|
|
| |
ok dlg@, marco@
|
| |
|
|
|
|
| |
prompted by oga
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
|
|
|
| |
else cares so it's just noise. Drivers that actually look at ITSDONE
are unchanged.
ok marco@ (for his files) dlg@ beck@
|
|
|
|
|
| |
void *. this lets us pass things other than scsi_xfers to ccb completion
handlers.
|
| |
|
|
|
|
|
|
|
|
| |
with input from marco@
ok marco@ krw@
this was ok looooooooong time ago but lost in my mailbox
|
|
|
|
| |
ok krw
|
| |
|
|
|
|
|
|
|
|
|
|
| |
theyve been used, in particular the mfi header flags which has a bit
that specifies if a command should be completed via the interrupt path.
if we use a ccb during boot we set that bit, but it isnt necessarily
cleared by things that use it later on. this means a ccb we expected to
complete via an interrupt never actually generates an interrupt or appears
in the reply queue. this obviously stalls the io.
|
| |
|
|
|
|
|
| |
mark the xs as done and call scsi_done for it rather than just returning
COMPLETE.
|
|
|
|
|
|
| |
the sleep waiting for the completion. it is possible to get the interrupt
completing the command just before the tsleep, which will never get a
wakeup because the interrupt with the wakeup has already happened.
|
|
|
|
|
|
| |
as additional argument. This will allow intermediate layers between
scsi devices such as sd and scsi host adapters to take appropriate
action if necessary.
|
|
|
|
| |
From Jim Giannoules <gortag@gmail.com>
|