| 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@
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
statement. All to make upcoming diff(s) smaller and easier to read.
|
| |
|
|
|
|
| |
immediately before initializing the only field in the struct.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
time_second(9) and time_uptime(9) are widely used in the kernel to
quickly get the system UTC or system uptime as a time_t. However,
time_t is 64-bit everywhere, so it is not generally safe to use them
on 32-bit platforms: you have a split-read problem if your hardware
cannot perform atomic 64-bit reads.
This patch replaces time_second(9) with gettime(9), a safer successor
interface, throughout the kernel. Similarly, time_uptime(9) is replaced
with getuptime(9).
There is a performance cost on 32-bit platforms in exchange for
eliminating the split-read problem: instead of two register reads you
now have a lockless read loop to pull the values from the timehands.
This is really not *too* bad in the grand scheme of things, but
compared to what we were doing before it is several times slower.
There is no performance cost on 64-bit (__LP64__) platforms.
With input from visa@, dlg@, and tedu@.
Several bugs squashed by visa@.
ok kettenis@
|
|
|
|
|
|
|
| |
Use a monotonic clock for timestamping LUNs to avoid problems when the
UTC clock jumps.
ok krw@
|
| |
|
|
|
|
|
|
| |
'minphys()'. Just use & check for NULL instead, since 'minphys()' is
always called on the code path ([cd|sd|st]minphys) that calls
physio().
|
|
|
|
|
|
|
|
|
|
|
| |
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@
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the ioff argument to pool_init() is unused and has been for many
years, so this replaces it with an ipl argument. because the ipl
will be set on init we no longer need pool_setipl.
most of these changes have been done with coccinelle using the spatch
below. cocci sucks at formatting code though, so i fixed that by hand.
the manpage and subr_pool.c bits i did myself.
ok tedu@ jmatthew@
@ipl@
expression pp;
expression ipl;
expression s, a, o, f, m, p;
@@
-pool_init(pp, s, a, o, f, m, p);
-pool_setipl(pp, ipl);
+pool_init(pp, s, a, ipl, f, m, p);
|
|
|
|
| |
ok natano@ krw@
|
|
|
|
|
|
|
| |
When issuing a non-dma command, make sure to set the "remaining length of
command to be transfered via dma" (sc_cmdlen) to zero upfront, otherwise we
might get confused on command completition interrupt (no dma active but still
data left to transfer).
|
|
|
|
|
|
|
| |
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.
ok tedu@ deraadt@
|
|
|
|
| |
ok mpi@ kspillner@
|
|
|
|
| |
after discussions with beck deraadt kettenis.
|
|
|
|
|
|
| |
``Callers of scsi_iopool_init() ought to set up the pool member in struct
scsi_link accordingly, for bad things will happen without (and this was a
real pita to debug).''
|
|
|
|
| |
place that uses it.
|
|
|
|
| |
take advantage of pool_setipl while here.
|
|
|
|
|
|
|
|
|
| |
thing that stores state for luns.
instead of checking and allocating it in the scsi_cmd path, and
doing weird things all over the place to free it (eg, there's a
timeout that ran every 10m to gc luns), use the scsi_probe and
scsi_free things the midlayer calls.
|
|
|
|
|
|
| |
scsi_adapter struct, just do it once in the chip code.
ok krw@
|
|
|
|
|
|
|
|
|
|
|
|
| |
such as READ_CAPACITY_16. So plugging SCSI-3 devices onto such a bus
can be problematic.
Cap the acceptable xs->cmdlen at 12 in ncr53c9x.c.
Problem noted and fix tested by Kurt Mosiejczuk. Thanks! Diff mostly
from miod@ with kibitzing from me.
ok miod@
|
|
|
|
|
|
| |
ncr53c9x_poll(). Fixes a race causing *some* drives to trigger a
panic in ncr53c9x_sched() at attach time on vax.
ok dlg@ krw@
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
step in elminating 'struct scsi_device' entirely.
Spotted and initial diff from matthew@.
ok matthew@ dlg@ deraadt@ marco@ miod@
|
|
|
|
|
|
|
|
| |
it defines. In some cases, this means pulling in uvm.h or pcb.h
instead, but most of the inclusions were just noise. Tested on
alpha, amd64, armish, hppa, i386, macpcc, sgi, sparc64, and vax,
mostly by krw and naddy.
ok krw@
|
|
|
|
|
|
|
| |
low-hanging splbio/splx pairs that are no longer needed and see if
this reveals any hidden scsi flaws.
ok dlg@
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
| |
more to go. Should be a no-op.
|
|
|
|
|
|
| |
was to try to play dangerous games with tagged queuing.
ok marco@
|
|
|
|
|
|
|
|
|
|
|
| |
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@.
|
|
|
|
| |
Pointed out by miod@. krw@ miod@ ok.
|
|
|
|
| |
"I'm all for it." marco@ "Yeah" deraadt@
|
|
|
|
|
|
|
| |
Really just the low-hanging fruit of (hopefully) forthcoming timeout
conversions.
ok art@, krw@
|
|
|
|
| |
sc_print_addr(); ok krw@
|
|
|
|
| |
information.
|
|
|
|
|
|
|
| |
polling in splbio/splx. Put belts and suspenders splbio/splx around
the scsi_done() call since it may be possible to get there other ways.
Partly from thib@
|
| |
|
|
|
|
| |
ok miod@ jmc@
|
|
|
|
| |
ok miod@ marco@ deraadt@
|
|
|
|
|
| |
user-controllable device flags are parsed, be sure to rerun config(8) on your
next kernel compile.
|
|
|
|
| |
have been computed.
|
| |
|
|
|
|
| |
ok deraadt@ krw@
|
|
|
|
|
|
|
|
| |
in ncr53c9x_select().
From tsutsui NetBSD
ok miod@
|