kettenis [Mon, 24 May 2021 18:40:19 +0000 (18:40 +0000)]
Add apldwusb(4), a glue driver for the Synpsys DesignWare USB 3 controllers
found on the Apple M1 SoC.
kettenis [Mon, 24 May 2021 18:38:29 +0000 (18:38 +0000)]
Add support for a DART with two sets of registers. We need this to support
the Synopsys DesignWare USB 3 controller.
dv [Mon, 24 May 2021 17:29:56 +0000 (17:29 +0000)]
Mention support for vmd(8) emulated virtio networking. OK mlarkin@
dtucker [Mon, 24 May 2021 10:25:18 +0000 (10:25 +0000)]
Find openssl binary via environment variable. This allows overriding
if necessary (eg in -portable where we're testing against a specific
version of OpenSSL).
dv [Sun, 23 May 2021 22:43:36 +0000 (22:43 +0000)]
vmd(8): skip inspecting non-udp packets on local interfaces
reyk@ imported packet.c from (I think) dhclient(8). In dhclient,
the packets are already filtered down to just udp. This change has
vmd skip a non-udp ip packet sooner when it's trying to determine
if it is a dhcp/bootp packet that needs processing.
The counters (seen, bad checksums, etc) for ip and udp packets are
also removed as they aren't used by vmd.
This only affects "local" network interfaces for vmd.
OK mlarkin@
kettenis [Sun, 23 May 2021 20:30:42 +0000 (20:30 +0000)]
Some machines (e.g. some Intel Macs) have a EFI memory map with more than
64 entries. Instead of writing beyond the array that we use to construct
a BIOS compatible memory map, check that we don't overflow the array and
print a message if we do. Bump the size of the array from 64 to 128
entries.
Issue reported and debugged by David N. Arnold.
Further input from yasuoka@
ok deraadt@ (earlier version) and yasuaka@
naddy [Sun, 23 May 2021 18:22:57 +0000 (18:22 +0000)]
ssh: The client configuration keyword is "hostbasedacceptedalgorithms"
This fixes a mistake that slipped in when "HostbasedKeyTypes" was
renamed to "HostbasedAcceptedAlgorithms".
Bug report by zack@philomathiclife.com
jan [Sun, 23 May 2021 17:01:21 +0000 (17:01 +0000)]
Constify function parameters.
OK martijn@
eric [Sun, 23 May 2021 16:12:56 +0000 (16:12 +0000)]
add missing entry for cafile
eric [Sun, 23 May 2021 15:57:32 +0000 (15:57 +0000)]
add more TLS options to smtp(1):
- cafile=<path>: override the default root certificates
- nosni: disable SNI completely
- noverify: do not verify sevrer certificate (replaces -C)
- servername=<name>: set server name for SNI
ok tb@
eric [Sat, 22 May 2021 22:30:57 +0000 (22:30 +0000)]
add semantic markup as suggested by schwarze@ and jmc@
bluhm [Sat, 22 May 2021 21:25:38 +0000 (21:25 +0000)]
In dt(4) add an offset of 100000 to the thread ID. This also happens
in other places where the TID is copied from kernel to userland.
So in btrace(8) the filter and action tid variable has the same
value as ps(1) output.
OK anton@ mpi@
bluhm [Sat, 22 May 2021 18:38:40 +0000 (18:38 +0000)]
Test more corner cases of IPv4 fragment reassembly.
drahn [Sat, 22 May 2021 17:07:28 +0000 (17:07 +0000)]
Cast line_size to address width before using for alignment.
ok kettenis@
bluhm [Sat, 22 May 2021 15:49:36 +0000 (15:49 +0000)]
On powerpc64 calling a function needs 64 bytes of stack overhead
per recursion. On amd64 it is only 32. Allocate more stack per
thread and the stack tests pass everywhere
jan [Sat, 22 May 2021 14:30:46 +0000 (14:30 +0000)]
Remove useless fflush(3) calls. lreply() already called fflush(3).
OK martijn@
jan [Sat, 22 May 2021 14:25:30 +0000 (14:25 +0000)]
Remove useless islower(2) before toupper(3).
OK martijn@
kettenis [Sat, 22 May 2021 13:13:14 +0000 (13:13 +0000)]
Fix aml_rwgsb(). My interpretation of the ACPI standard turned out to be
wrong and the buffer size is implied by the field attribute instead of the
field length like for normal OpRegion fields. Fixes various laptops
where reading multiple bytes from AML over an i2c bus would overflow
the buffer. Still fixes the Dell Precision 3640.
ok tb@
eric [Sat, 22 May 2021 12:16:06 +0000 (12:16 +0000)]
reorder entries
eric [Sat, 22 May 2021 09:09:07 +0000 (09:09 +0000)]
allow to specify TLS ciphers and protocols in smtp(1)
improvements from jmc@ schwarze@ tb@
ok tb@
mpi [Sat, 22 May 2021 08:38:29 +0000 (08:38 +0000)]
Use atomic operations for reference counting VM maps.
This is necessary to do this accounting without the KERNEL_LOCK().
ok mvs@, kettenis@
yasuoka [Sat, 22 May 2021 08:29:57 +0000 (08:29 +0000)]
Remove ipsec_utils.c, its headers, and the code block which use it
from npppd(8). They had been disabled for long time.
anton [Sat, 22 May 2021 05:49:32 +0000 (05:49 +0000)]
In revision 1.95 of cgi.c, a meta viewport element was added to the HTML output.
Let `mandoc -Thtml' behave the same, makes the generated HTML a bit more
pleasant to view on a mobile device.
ok schwarze@
bluhm [Fri, 21 May 2021 23:00:02 +0000 (23:00 +0000)]
Ignore return value of execve(2) in ktrace output. It is meaningless.
This fixes syslogd regress on powerpc64.
discussed with kettenis@
bluhm [Fri, 21 May 2021 20:42:21 +0000 (20:42 +0000)]
Fix the calculation of the maximum stack size in the command line
option -s.
bluhm [Fri, 21 May 2021 20:21:10 +0000 (20:21 +0000)]
Set the stack size attribute of the pthreads large enough to allocate
the specified amount of stack memory. On 32 bit architectures
regress fork-exit failed as the default stack size for pthreads is
smaller. With the limit set to the expected size we can test even
larger thread stacks.
krw [Fri, 21 May 2021 19:09:46 +0000 (19:09 +0000)]
The protective MBR for GPT partitioning must be at
sector 0. No EBR qualifies.
kettenis [Fri, 21 May 2021 18:53:12 +0000 (18:53 +0000)]
Avoid spinning on the kernel lock with interrupts disabled.
ok patrick@
kettenis [Fri, 21 May 2021 16:52:42 +0000 (16:52 +0000)]
The implementation of the FUTEX_WAIT option in futex(2) is subtly broken.
Unfortunately libc and libpthread rely on the broken behaviour. Adjust
the code in those libraries such that it works with both the old and the
proposed new behaviour. The kernel changes that fix the issue will be
committed in a week or so to give those who do their own builds a chance
to update these libraries before we make the change.
ok mpi@, deraadt@
deraadt [Fri, 21 May 2021 16:50:48 +0000 (16:50 +0000)]
reduce diff relative to other arch (arm64 seems most relevant here)
deraadt [Fri, 21 May 2021 16:49:57 +0000 (16:49 +0000)]
delete useless comment
deraadt [Fri, 21 May 2021 16:49:35 +0000 (16:49 +0000)]
delete useless comment
kettenis [Fri, 21 May 2021 15:37:54 +0000 (15:37 +0000)]
Add an additional pin configuration.
kettenis [Fri, 21 May 2021 14:41:57 +0000 (14:41 +0000)]
Fix some comments and use pmap_pte_insert() to update PTEs instead of
manipulating them directly in pmap_clear_modify().
ok deraadt@
mvs [Fri, 21 May 2021 10:59:02 +0000 (10:59 +0000)]
Fix style(9) in prototypes definition.
ok ratchov@
djm [Fri, 21 May 2021 04:03:47 +0000 (04:03 +0000)]
fix memleak in test
djm [Fri, 21 May 2021 03:59:01 +0000 (03:59 +0000)]
also check contents of remaining string
djm [Fri, 21 May 2021 03:48:07 +0000 (03:48 +0000)]
unit test for misc.c:strdelim() that mostly servces to highlight its
inconsistencies
gkoehler [Fri, 21 May 2021 00:39:35 +0000 (00:39 +0000)]
Fix __ppc_lock for page faults that recursively grab the lock.
The macppc kernel, when running on G5, may get page faults while
executing itself. Because we reorder our kernels, these faults happen
in different places in each kernel. I got unlucky with a bsd.mp where
the function __ppc_lock() crossed a page boundary. The fault handler
recursively called __ppc_lock() and caused my G5 to freeze or hang
very early during boot, while trying to map the framebuffer.
Change the lock to spin while (mpl->mpl_cpu != NULL). Acquire the
lock with a single atomic write, by setting mpl_cpu and leaving
mpl_count at 0. Page faults that recursively call __ppc_lock() and
__ppc_unlock() should now not corrupt the lock.
In case we hold the lock but get a page fault before membar_enter() or
after membar_exit(), the recursive calls now have memory barriers.
Delete some unused functions. In the past, __ppc_lock was __mp_lock,
but today, the only __ppc_lock is PMAP_HASH_LOCK.
ok kettenis@
kettenis [Thu, 20 May 2021 18:28:15 +0000 (18:28 +0000)]
Print cache information based on device tree properties like we do on
powerpc64.
ok deraadt@
dv [Thu, 20 May 2021 17:33:44 +0000 (17:33 +0000)]
vmm(4): don't advertise cpu support for TSC_ADJUST msr
We don't emulate it, so guests that attempt to read it just get #GP
injected anyways.
OK mlarkin@
jan [Thu, 20 May 2021 15:21:03 +0000 (15:21 +0000)]
Removes the useless FILE* parameter of get_line().
While here fix minor whitespace mistake.
"looks fine to me" chris@
drahn [Thu, 20 May 2021 15:14:30 +0000 (15:14 +0000)]
Significant overhaul of the floating point save/restore code.
At this point the mechanism should closely resemble the powerpc64
save/restore points with one difference. (reload avoidance)
The previous 'aggressive' fpu save code that was (mostly) implemented before
and is present on arm32 and arm64.
There is one piece from that other design that remains, if
pcb->pcb_fpcpu == ci && ci->ci_fpuproc == p
after sleep, this will automatically re-activate the FPU state without
needing to reload it.
To enable this, the pointer pair is not changed on FPU context save
to indicate that the CPU still holds the valid content as long as both
of those pointers are pointing to each other.
Note that if another core steals the FPU conxtex (when we get to SMP)
the pcb->pcb_fpcpu will be another cpu, and from that it will know
to reload the FPU context. Also optimistically enabling this only makes
sense on riscv64 because there is the notion of FPU on and clean. Other
implimentations would need to 'fault on' the FPU enable, but could avoid
the FPU context load if no other processor has run this FPU context and no
other process has use FPU on this core.
ok kettenis@ deraadt@ Prior to a couple of fixes.
(this file was missing from original commit)
florian [Thu, 20 May 2021 15:12:10 +0000 (15:12 +0000)]
Fix previous.
Only set Content-Length when we no the body is empty and we disable
chunked encoding. Otherwise we break the nextcloud app again :/
Pointed out by Matthias Pressfreund, thanks!
tb [Thu, 20 May 2021 14:41:47 +0000 (14:41 +0000)]
EVP_Digest*: fix documented return values.
EVP_DigestSign{,Init,Update,Final}() and EVP_DigestVerify{Init,Update}()
always returned 1 for success and 0 for failure. EVP_DigestVerify()
and EVP_DigestVerifyFinal() can return -1 or -2, though.
Based on OpenSSL 1.1.1
56c59ddd99da05c2f30832cccaffb873a8481555
ok inoguchi
krw [Thu, 20 May 2021 14:27:14 +0000 (14:27 +0000)]
Nuke duplicate declaration of MBR_init_GPT().
bluhm [Thu, 20 May 2021 12:34:35 +0000 (12:34 +0000)]
We changed powerpc64 to allow write access to write only mappings.
Although the page table cannot prevent reads on write only pages,
the first access in trap() knows what is is. This should be passed
to uvm_fault(). Then regress/sys/kern/fork-exit passes. Copy the
new powerpc64 logic to powerpc.
OK tobhe@ kettenis@ deraadt@
claudio [Thu, 20 May 2021 10:06:20 +0000 (10:06 +0000)]
Properly initalize the MRT config so that mrt_reconfigure() is doing the
right thing. This also fixes the bgpd -nv output for 'dump X {in,out}'
statements for peers.
Debugged with and tested by Paul de Weerd
claudio [Thu, 20 May 2021 10:03:43 +0000 (10:03 +0000)]
Fix bgpctl show mrt argument list. Seems like peers was added in the wrong
spot. Noticed and diff provided by Paul de Weerd.
martijn [Thu, 20 May 2021 08:53:12 +0000 (08:53 +0000)]
Rename context to pdutype. This is in line with the naming schema from the
RFCs.
While here remove a duplicate sm_type that snuck in during traphandler
merger and use human readable names in debug log entries from packages.
OK jan@
mpi [Thu, 20 May 2021 08:03:35 +0000 (08:03 +0000)]
Make use of uao_dropswap_range() in uao_free() instead of re-rolling it.
ok kettenis@
eric [Thu, 20 May 2021 07:33:32 +0000 (07:33 +0000)]
Call tls_accept_socket() and tls_connect_socket() immediatly instead of
going through a deferred event. It makes the code simplier and eliminates
the need to keep the listener tls context in the io structure.
ok tb@
drahn [Thu, 20 May 2021 04:22:33 +0000 (04:22 +0000)]
Significant overhaul of the floating point save/restore code.
At this point the mechanism should closely resemble the powerpc64
save/restore points with one difference. (reload avoidance)
The previous 'aggressive' fpu save code that was (mostly) implemented before
and is present on arm32 and arm64.
There is one piece from that other design that remains, if
pcb->pcb_fpcpu == ci && ci->ci_fpuproc == p
after sleep, this will automatically re-activate the FPU state without
needing to reload it.
To enable this, the pointer pair is not changed on FPU context save
to indicate that the CPU still holds the valid content as long as both
of those pointers are pointing to each other.
Note that if another core steals the FPU conxtex (when we get to SMP)
the pcb->pcb_fpcpu will be another cpu, and from that it will know
to reload the FPU context. Also optimistically enabling this only makes
sense on riscv64 because there is the notion of FPU on and clean. Other
implimentations would need to 'fault on' the FPU enable, but could avoid
the FPU context load if no other processor has run this FPU context and no
other process has use FPU on this core.
ok kettenis@ deraadt@ Prior to a couple of fixes.
jsg [Thu, 20 May 2021 00:58:53 +0000 (00:58 +0000)]
arm64 -> powerpc64
jsg [Thu, 20 May 2021 00:55:15 +0000 (00:55 +0000)]
mention riscv64 config lines
jsg [Thu, 20 May 2021 00:46:34 +0000 (00:46 +0000)]
build pcidump on riscv64
jsg [Wed, 19 May 2021 23:29:42 +0000 (23:29 +0000)]
add pci to RAMDISK as well
drahn [Wed, 19 May 2021 23:18:40 +0000 (23:18 +0000)]
Revert hack to build clang with -static on riscv64.
This 'requirement' was due to a bug in dtors which has been corrected.
reminded by jsg@
drahn [Wed, 19 May 2021 23:15:21 +0000 (23:15 +0000)]
Correct the library path for native build of ramdisks.
krw [Wed, 19 May 2021 21:49:07 +0000 (21:49 +0000)]
No need to pass the location of the partition table to
GPT_get_partition_table() since the global 'gh' knows where it is.
Fixes a couple of missing letoh64() calls by eliminating the need for
them.
kettenis [Wed, 19 May 2021 21:23:20 +0000 (21:23 +0000)]
Get rid of the do-nothing cache setup code. The RISC-V architecture has
no architecturally defined caches (yet) so there is nothing to set up here.
Gets rid of some more useless XXX.
deraadt [Wed, 19 May 2021 20:37:16 +0000 (20:37 +0000)]
delete useless XXX
deraadt [Wed, 19 May 2021 20:35:02 +0000 (20:35 +0000)]
delete useless XXX
kettenis [Wed, 19 May 2021 20:10:38 +0000 (20:10 +0000)]
Only advertise MSI support if there is an MSI controller of some sort.
ok patrick@
florian [Wed, 19 May 2021 19:42:53 +0000 (19:42 +0000)]
When we disable "Transfer-Encoding: chunked" in the fastcgi backend
because we are going to send an empty body we have to provide
"Content-Length: 0" otherwise some browsers (Firefox, Safari) just
hang until httpd(8) closes the connection.
Problem reported by Matthias Pressfreund, debugged with weerd@ who
pointed out that the problem is browser dependent.
OK tracey
kettenis [Wed, 19 May 2021 19:32:25 +0000 (19:32 +0000)]
Add PCI support.
ok deraadt@
bluhm [Wed, 19 May 2021 18:42:59 +0000 (18:42 +0000)]
Double the maximum data size limit on powerpc64. Now it is 32 GB
and the same as amd64. The machines have large amounts of memory.
discussed with kettenis@
kettenis [Wed, 19 May 2021 18:10:45 +0000 (18:10 +0000)]
In ttyinfo() check that ps_vmspace isn't NULL before calculating the
resident set size. This replicates what the sysctl code does and fixes
a kernel crash reported by robert@
ok deraadt@
patrick [Wed, 19 May 2021 17:46:36 +0000 (17:46 +0000)]
Disable global mappings when using PCID.
Page table mappings are frequently created and destroyed in the kernel
address space. Traditionally, these mappings have been marked as
"global" mappings which means that a TLB flush via %cr3 load does not
invalidate them. This is ok as these mappings are the same for all
processes.
With the advent of MELTDOWN, global mappings were disabled for CPUs
that are affected by rogue data cache load (RDCL aka MELTDOWN). To
compensate for this we started using PCID and the kernel got its own
process context identifier. Thus the hardware is allowed to cache
kernel mappings again.
However, a CPU that supports PCID but is _not_ affected by MELTDOWN
(i.e. ARCH_CAPABILTIES.RDCL_NO=1) will now use both: global PTE
mappings and PCID.
This is a problem if range based TLB invalidations are used to update/
flush cached TLBs after a change to the kernel page tables. The reason
is that the invpcid instruction (function 0) that is used to remove the
cached TLBs will not remove global mappings. In the non-PCID case invlpg
is used instead which does remove global mappings. In the MELTDOWN case,
global mappings are not used at all.
The solution is to not use global mappings if PCID is active, as the
latter should already by enough to let the hardware cache kernel address
translations across address space switches and the global flag is not
required.
From Christian Ehrhardt
ok bluhm@ guenther@ mlarkin@
kettenis [Wed, 19 May 2021 17:39:49 +0000 (17:39 +0000)]
Bring riscv64 intr.c code in sync with arm64. This brings us:
- MSI support
- Interfaces to route interrupts to specific CPUs
- Proper interrupt barriers
- s/riscv_intr_handler/machine_intr_handler/
ok mlarkin@
deraadt [Wed, 19 May 2021 17:25:10 +0000 (17:25 +0000)]
enter new dirs
deraadt [Wed, 19 May 2021 17:22:57 +0000 (17:22 +0000)]
correct .PATH
deraadt [Wed, 19 May 2021 17:16:51 +0000 (17:16 +0000)]
resolvd and dhcpleased if ramdisks need them
deraadt [Wed, 19 May 2021 16:57:02 +0000 (16:57 +0000)]
Please sir, I want some more (ramdisk miniroot space)
inoguchi [Wed, 19 May 2021 10:12:55 +0000 (10:12 +0000)]
Adjust libcrypto obj_xref.txt to obj_xref.h
To generate current obj_xref.h, third item of lines
id_tc26_signwithdigest_gost3410_2012_256/512 should be id_GostR3410_2001.
obj_xref.txt r1.2 and obj_xref.h r1.3 were committed at the same time,
and these third item were coded different value each other.
This adjusts obj_xref.txt to current obj_xref.h.
ok tb@
jsg [Wed, 19 May 2021 05:28:09 +0000 (05:28 +0000)]
match on Intel 500 Series PCH ids
jsg [Wed, 19 May 2021 05:21:24 +0000 (05:21 +0000)]
regen
jsg [Wed, 19 May 2021 05:20:48 +0000 (05:20 +0000)]
add Intel 500 Series PCH ids
jsg [Wed, 19 May 2021 02:14:52 +0000 (02:14 +0000)]
regen
jsg [Wed, 19 May 2021 02:14:11 +0000 (02:14 +0000)]
add more inteldrm and amdgpu ids
djm [Wed, 19 May 2021 01:24:05 +0000 (01:24 +0000)]
restore blocking status on stdio fds before close
ssh(1) needs to set file descriptors to non-blocking mode to operate
but it was not restoring the original state on exit. This could cause
problems with fds shared with other programs via the shell, e.g.
> $ cat > test.sh << _EOF
> #!/bin/sh
> {
> ssh -Fnone -oLogLevel=verbose ::1 hostname
> cat /usr/share/dict/words
> } | sleep 10
> _EOF
> $ ./test.sh
> Authenticated to ::1 ([::1]:22).
> Transferred: sent 2352, received 2928 bytes, in 0.1 seconds
> Bytes per second: sent 44338.9, received 55197.4
> cat: stdout: Resource temporarily unavailable
This restores the blocking status for fds 0,1,2 (stdio) before ssh(1)
abandons/closes them.
This was reported as bz3280 and GHPR246; ok dtucker@
kevlo [Tue, 18 May 2021 14:25:59 +0000 (14:25 +0000)]
Enable umb(4).
kevlo [Tue, 18 May 2021 14:23:53 +0000 (14:23 +0000)]
regen
kevlo [Tue, 18 May 2021 14:23:03 +0000 (14:23 +0000)]
Add support for Quectel EC25.
To issue an AT command (AT+QCFG="usbnet",2) to change to MBIM mode.
Tested by Shawn Chiou on rpi4; "of course" deraadt@
schwarze [Tue, 18 May 2021 13:22:37 +0000 (13:22 +0000)]
When looking for column separators on tbl(7) data lines, properly skip
escape sequences; do not misinterpret bytes from the middle of escape
sequence names or arguments as column separators.
Bug reported and patch tested by Oliver dot Corff at email dot de.
benno [Tue, 18 May 2021 13:20:55 +0000 (13:20 +0000)]
bump rpki-client version
deraadt [Tue, 18 May 2021 12:26:31 +0000 (12:26 +0000)]
panic does not require a \n at the end. When one is provided, it looks wrong.
jsg [Tue, 18 May 2021 12:24:12 +0000 (12:24 +0000)]
use ctfstrip instead of strip to add .SUNW_ctf
ok deraadt@ mpi@
kettenis [Tue, 18 May 2021 11:39:37 +0000 (11:39 +0000)]
Move the pciecam stanza back into files.arm64 since armv7 has its own
pciecam(4) implementation hidden away in arch/armv7/vexpress.
Unbreaks armv7 kernel builds.
mvs [Tue, 18 May 2021 11:15:14 +0000 (11:15 +0000)]
Move potential sleeping m_getclr(9) out of `unp_lock' within unp_bind().
ok mpi@
dv [Tue, 18 May 2021 11:06:43 +0000 (11:06 +0000)]
vmd(8): guest virtio drivers can cause stack & buffer overflows
A vmd guest can craft invalid virtio descriptor lengths resulting
in reading and writing beyond stack-allocated buffer lengths providing
an escape vector to the host.
Instead of allowing the guest to dictate read/write lengths, this
commit has vmd just use compile-time lengths based on the source
or destination object sizes. For instances where vmd's virtio
implementation can't use this method, such as reading packets from
the vionet device, cap each read with a pre-computed max chunk size.
Reported by Maxime Villard.
Tested with help from Mischa Peters, OK mlarkin@
ratchov [Tue, 18 May 2021 10:02:00 +0000 (10:02 +0000)]
Add pre-DMA-write barrier after data is stored to memory
There's already such a barrier in usbd_transfer() code-path, but this
one is called when the frames are queued to the HC ring. The audio
samples are stored in memory by userland later, *after* the frames are
scheduled (but before they are sent on the wire) so a barrier is
needed there. Without this change, the data produced by userland may
stay in the CPU caches and is not "seen" by the HC's DMA engine, in
turn the device plays noise on certain arm64 machines (RPI4, for
instance).
Fix mostly from Luca Castagnini with few tweaks from me. OK patrick@
kettenis [Tue, 18 May 2021 09:14:49 +0000 (09:14 +0000)]
Remove the no-op instruction cache flush/wb/inv operations and replace them
with a FENCE.I instruction which does exactly what we need to synchronize
the I-Cache with the D-Cache.
ok mlarkin@, jsg@
kettenis [Tue, 18 May 2021 08:16:50 +0000 (08:16 +0000)]
regen
kettenis [Tue, 18 May 2021 08:16:11 +0000 (08:16 +0000)]
Add Quectel EM120R-GL and Samsung PM9A1.
ok deraadt@, jsg@
stsp [Tue, 18 May 2021 08:10:45 +0000 (08:10 +0000)]
Drop fragmented 802.11 frames.
Fragmented frames were never of any practical use to us anyway, given that
our net80211 stack does not (yet?) re-assemble them.
Counter-measure against attacks where an arbitrary packet is injected in a
fragment with attacker-controlled content (via an AP which supports fragments).
See https://papers.mathyvanhoef.com/usenix2021.pdf
Section 6.8 "Treating fragments as full frames"
ok mpi@
claudio [Tue, 18 May 2021 05:26:26 +0000 (05:26 +0000)]
Document new net.unix sysctls.
OK mvs@
claudio [Tue, 18 May 2021 05:25:40 +0000 (05:25 +0000)]
Add support for the new net.unix sysctl nodes.
OK mvs@
dv [Tue, 18 May 2021 00:05:20 +0000 (00:05 +0000)]
vmm(4): add more specific error messages for vm-entry failures
To aid vmx debugging, specify if the error was related to vmresume
or vmlaunch. For vm-entry failures due to failed checks, decode the
errors per the SDM Vol. 3C 26.8.
dv [Mon, 17 May 2021 23:36:40 +0000 (23:36 +0000)]
vmm(4): fix race condition related to incorrect physical cpu tracking
The race condition results in vmread errors when disabling interrupt
window exiting. The vmd(8) guest gets an EINVAL response to it's
VMM_IOC_RUN ioctl and aborts, sending the guest to an abrupt end.
Similarly to the recent SVM commit, this changes the vcpu run loop
logic to check for resuming on a different cpu. If so, the VMCS is
loaded onto the new cpu.
Instead of using just a "resume" flag, the real reason (other than cpu
switch) that would require reloading the VMCS is vmm may have cleared
the VMCS before yielding to the scheduler. The "resume" flag is still
used in vmx_enter_guest to toggle between vmlaunch/vmresume calls, but
is no longer the arbiter of if vmm reloads the VMCS or not.
A more subtle race condition still exists related to clearing the VMCS
on the previous cpu, but that's for a future commit.
OK mlarkin@