Age | Commit message (Collapse) | Author |
|
From jordan@, with a few more tweaks by myself.
|
|
|
|
This makes certain machines' management network port usable.
|
|
when the request is unsupported.
So check mode sense(6) and mode sense(10) results for valid headers before
passing the results back.
Avoid overwriting any error that was returned.
ok jmatthew@
|
|
ok kettenis@
|
|
ok kettenis@
|
|
|
|
ok kettenis@
|
|
In preparation for running the lapic timer in oneshot mode on amd64 we
need a replacement for lapic_delay().
Using the lapic timer itself to implement delay(9) when the timer is
not running in periodic mode is complicated if not outright impossible.
Meanwhile, the i8254 provides our only other amd64 delay(9) implementation
and it is an extremely slow clock. On my 2GHz machine, gettick() takes
~20 microseconds to complete *without* mutex contention. On a VM it is
even slower, as you must exit the VM for each inb() and outb().
So, add tsc_delay() and use it when we have a constant/invariant TSC.
The TSC is a 64-bit "up-counter" so the implementation is simple.
Given how slow the i8254 is on modern machines, we may want to add an
HPET delay(9) implementation as a fallback for machines where the TSC
drifts. The HPET itself is pretty slow, but not as slow as the i8254.
Discussed with kettenis@, Mike Larkin, and naddy@.
Tweaked by kettenis@.
ok kettenis@
|
|
This makes it possible to use more SLB entries for the kernel than the
hardware supports. The design is such that a subset of the hardware SLB
entries can be replaced when needed. This makes sure the entries
mapping kernel code and data and the page tables ar always present.
Traps for missing SLB entries are handled in real-mode and on a special
stack such that it doesn't have to rely on SLB entires mapping kernel
stacks.
With this in place we can increase KVA to 32GB. Hopefully that's enough
to support large memory configurations.
|
|
|
|
from Matt Baulch
discussed with kettenis and drahn
|
|
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.
|
|
than 8 SLB entries.
|
|
|
|
than 8 SLB entries.
|
|
This makes various receive and transmit event counters readable. This
additionally replaces the old, and somewhat unusual, way of updating
error counters in ifp.
Most of the hardware counters are 32 bits wide. Hence the code polls
them periodically and adds the values to 64-bit software counters.
The hardware counters are cleared when read.
|
|
OK millert@, florian@
|
|
From Alex Deucher
b5b97cab55eb71daba3283c8b1d2cce456d511a1 in mainline linux
|
|
ok kettenis@
|
|
ok kettenis@
|
|
We reprogram the lapic timer by hand in three separate places.
This is error-prone and difficult to read.
To clean things up, introduce routines for reprogramming the lapic
timer in a given mode. lapic_timer_oneshot() starts a oneshot
countdown. lapic_timer_periodic() starts a repeating countdown.
Both of these routines call lapic_timer_start(), wherein we actually
write the lapic registers.
With input from dlg@.
Earlier version eyeballed by mlarkin@.
Suspend/resume tested by gnezdo@.
|
|
|
|
proper BSD way where the third argument is always a pointer and data is
transferred between userland and kernel using copyin(9) and copyout(9).
Intead an int is encoded in the thirs argument. This works on 32-bit
architectures and little-endian 64-bit architectures. But not on
big-endian 64-bit architectures. Deal with this by handling the argument
as long (which matches the size of a pointer).
Hopefully we can eliminate these ioctls in the near future.
ok deraadt@
|
|
|
|
magic numbers. As the nearby comment says '< 2 is obsolete. >2 is reserved'. So
0x2 is just right.
|
|
initialize the 'version' field. Not numbers.
|
|
initialize the 'version' field. Not numbers.
|
|
ok kettenis visa
|
|
actual length which has been allocated. We saw cases where the
wTotalLength value is changing on a second read, e.g. when a USB device
was waked up from sleep mode.
ok mpi@
|
|
Copy signotify() from amd64, so that if proc *p is on another cpu, then
signotify(p) notifies the correct cpu.
ok kettenis@
|
|
|
|
|
|
|
|
Reported by Maxime Villard, fix from Matt Dunwoodie after feeedback from
claudio who is fine with either of the two suggested fixes going in.
|
|
bus_space_mmap(9) implementation to make sure we enter mappings with
the right memory attributes.
|
|
at the beginning of the loop. We need to use cr3 at the start of each
iteration for the top level page directory.
From and ok sf@
|
|
struct scsi_rw_10.
ok gnezdo@ jmatthew@ (who also did sparc64 compile test)
|
|
deraadt@: looks fine
|
|
|
|
The best-guessed limits will be tested by trial.
|
|
The best-guessed limits will be tested by trial.
|
|
|
|
Logitech keyboard for unknown reasons.
Reported by denis@
ok djm@
|
|
ok yasuoka@
|
|
pipex(4) layer this `ifnet' still uses `if_data'. Also pppx(4) doesn't
use per cpu counters but `if_data'.
Add per cpu counters to pppx(4) and pipex(4). This finishes interface
statistics collecting mess.
ok yasuoka@
|
|
allow shrinking the names arrays.
|
|
handle the priority levels better and guarantee ordering of restoring the
priority level after running an interrupt handler and checking for a new
interrupt.
|