Age | Commit message (Collapse) | Author |
|
it sends commands and waits for replies to come back in. The receive
pipe seems to contain both command completions and data packets. When
waiting for command completion during hvn(4) attach, it's possible for
packets to show up as well. We shouldn't call if_input() if hvn(4) is
not set up, so drop them when we're not running.
ok mikeb@
|
|
|
|
The timecounter struct is large and I think it may change in the
future. Changing it later will be easier if we use C99-style
initialization for all timecounter structs. It also makes reading the
code a bit easier.
For reasons I cannot explain, switching to C99-style initialization
sometimes changes the hash of the resulting object file, even though
the resulting struct should be the same. So there is a binary change
here, but only sometimes. No behavior should change in either case.
I can't compile-test this everywhere but I have been staring at the
diff for days now and I'm relatively confident this will not break
compilation. Fingers crossed.
ok gnezdo@
|
|
CID 1501713
ok jmatthew@
|
|
here 10 years ago, xdr isn't scary at all.
ok dlg@
|
|
allocated as part of the softc, though it's always been the same buffer
so far.
ok dlg@
|
|
ok dlg@
|
|
OK dlg@, bluhm@
No Opinion mpi@
Not against it claudio@
|
|
In hvn_alloc_cmd() we may spin waiting for a free rndis_cmd. We check
the list once per tick and block with msleep(9) if there aren't any
free objects.
In practice though we don't need to poll for a free rndis_cmd because
our sleep is protected by a mutex, so we can't miss a wakeup(9). That
is, it's safe to use msleep_nsec(9) here and not set a timeout (INFSLP).
Tested by Andre Stoebe <as@nul.space> (Hyper-V on Windows 10).
"LGTM" mikeb@, ok mpi@
|
|
Replace all tsleep(..., 1) calls in these drivers with tsleep_nsec(9)
calls. In every case we can use the nearby delay(9) intervals as the
timeout.
Tested by Andre Stoebe <as@nul.space> (Hyper-V on Windows 10).
"LGTM" mikeb@, ok mpi@
|
|
|
|
to scsi_copy_internal_data(). Thus getting xs->resid properly set and adding the
usual uio/size sanity checks.
|
|
|
|
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@
|
|
to replace various uses of '5' when calculating the amount of data in the
INQUIRY response. Matches up more naturally with SID_SCSI2_ALEN.
Also use to fix SCSIDEBUG display of INQUIRY responses to show correct count of
bytes received/available.
|
|
responses. This is what the SCSI specifications say is the correct value and
already used in several cases.
|
|
OK millert@, florian@
|
|
|
|
initialize the 'version' field. Not numbers.
|
|
initialize the 'version' field. Not numbers.
|
|
struct scsi_rw_10.
ok gnezdo@ jmatthew@ (who also did sparc64 compile test)
|
|
intr_barrier() now uses the argument so directly call sched_barrier(NULL)
which is what intr_barrier() used to do until recently.
problem reported by and fix tested by Andre Stoebe
|
|
OK deraadt@, mpi@
|
|
driver successfully compiles on one or more of amd64, i386, hppa.
|
|
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.
|
|
openings outside of the one used at config_found() time. Adapters
should take care of their own data.
ok dlg@ for a sligthly different vioblk.c version.
|
|
ok dlg@ tobhe@
|
|
This diff exposes parts of clock_gettime(2) and gettimeofday(2) to
userland via libc eliberating processes from the need for a context
switch everytime they want to count the passage of time.
If a timecounter clock can be exposed to userland than it needs to set
its tc_user member to a non-zero value. Tested with one or multiple
counters per architecture.
The timing data is shared through a pointer found in the new ELF
auxiliary vector AUX_openbsd_timekeep containing timehands information
that is frequently updated by the kernel.
Timing differences between the last kernel update and the current time
are adjusted in userland by the tc_get_timecount() function inside the
MD usertc.c file.
This permits a much more responsive environment, quite visible in
browsers, office programs and gaming (apparently one is are able to fly
in Minecraft now).
Tested by robert@, sthen@, naddy@, kmos@, phessler@, and many others!
OK from at least kettenis@, cheloha@, naddy@, sthen@
|
|
intr_barrier() now uses the argument so directly call sched_barrier(NULL)
which is what intr_barrier(NULL) used to do until recently.
From Todd Carson on bugs@
ok dlg@
|
|
|
|
immediately before initializing the only field in the struct.
|
|
As a result remove unneeded variable
OK kn@, millert@
|
|
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@
|
|
aassigned to adapter_buswidth to indicate the adapter is not a target
on the bus.
ok dlg@ as part of a larger diff.
|
|
indicate the adapter is not a target on the bus.
ok dlg@ as part of a larger diff.
|
|
set/trust the scsiconf.c probing limits. Same as was done to
vioblk(4).
ok dlg@
|
|
this is a step toward deprecating softclock based livelock detection.
|
|
tweak adapter_target and adapter_buswidth values to provide desired
semantic of providing only target 0/lun 0 device per vioblk(4) device.
Tested by sf@
|
|
conversion steps). it only contains kernel prototypes for 4 interfaces,
all of which legitimately belong in sys/systm.h, which are already included
by all enqueue_randomness() users.
|
|
ESXi doesn't carry the guest info over when a guest gets moved to a
different host, and this appears to be the only hint the guest gets
that this has happened.
ok dlg@
|
|
as (64 * 1024). Reduce confusion by using
MAXPHYS (a.k.a. (64 * 1024)) as other drivers
do.
|
|
Upon a failed task_add, the adjusted reference counter needs
to be decremented.
xen_intr_schedule should follow the same logic as xen_intr.
Tested by Niklas Hallqvist. Ok mpi@
|
|
scsi drivers. i.e. eliminate the struct scsi_adapter member in the
softc and rely on the pointer to a static scsi_adapter in the struct
scsi_link member.
|
|
'minphys()'. Just use & check for NULL instead, since 'minphys()' is
always called on the code path ([cd|sd|st]minphys) that calls
physio().
|
|
inducing. Rename scsi_adapter member 'scsi_minphys' to 'dev_minphys'
to reflect what it is supposed to do. Use consistent naming convention
(<dev>_minphys) for the actual device functions.
No functional change.
|
|
ok tedu@ krw@ deraadt@
|