OpenBSD cvs log

created 2022-07-03T20:25:34Z
begin 2022-06-27T00:00:00Z
end 2022-06-28T00:00:00Z
path src/sys
commits 24

date 2022-06-27T07:55:28Z
author mlarkin
files src/sys/dev/acpi/amdgpio.c log diff annotate
message amdgpio(4): restore pin configuration on resume

Save/restore the pin configuration on suspend/resume for amdgpio(4).
This fixes missing interrupts after resume for trackpads on some
machines, including the ROG Zephyrus 14 and the HP DevOne (and probably
others).

Code based on pchgpio(4).

ok deraadt, kettenis

date 2022-06-27T08:00:31Z
author mlarkin
files src/sys/dev/acpi/amdgpio.c log diff annotate
message Whitespace/KNF

date 2022-06-27T08:15:38Z
author claudio
files src/sys/net/rtsock.c log diff annotate
message Don't copy more than sa_len from the sockaddr to the sysctl / rt msg buffer.
In the rt msg buffer the size of the full buffer is calculated first then
filled out after allocating the mbuf. In the sysctl code this is not needed
since the buffer is already provided.
OK mvs@

date 2022-06-27T09:16:56Z
author stsp
files src/sys/dev/ic/bwfm.c log diff annotate
message Fix bwfm(4) ifconfig media display on devices with sta_info command version 3.

ok jsg@

date 2022-06-27T10:02:20Z
author bluhm
files src/sys/dev/pci/if_bnxt.c log diff annotate
message Do not run receive and transmit interrupt handlers when the bnxt(4)
interface is not running. Prevents a panic triggered by ifconfig
bnxt0 down.
found by Hrvoje Popovski; OK jmatthew@

date 2022-06-27T12:47:07Z
author bluhm
files src/sys/netinet/if_ether.c log diff annotate
message Instead of calling getuptime() all the time in ARP code, do it only
once per function. This gives a more consistent time value.
OK claudio@ miod@ mvs@

date 2022-06-27T13:03:32Z
author anton
files src/sys/dev/fdt/pluart_fdt.c log diff annotate
src/sys/dev/ic/pluart.c log diff annotate
src/sys/dev/ic/pluartvar.h log diff annotate
message Allow the pluart(4) baud rate to be changed.

It's most likely that users have the wrong baud rate in /etc/ttys as
this was corrected in revision 1.11 of sys/dev/ic/pluart.c. Make sure to
change the console baud rate from 38400 to 115200 in /etc/ttys before
upgrading.

ok visa@

date 2022-06-27T13:14:49Z
author jan
files src/sys/dev/usb/ucom.c log diff annotate
message Remember the error of ucomreadcb() for the next ucomread() call and returns an
EIO. Thus the userland notices the error and closes the device. We forget the
error on reopen and the device works again.

Ok mbuhl

date 2022-06-27T13:35:21Z
author visa
files src/sys/kern/kern_event.c log diff annotate
src/sys/sys/eventvar.h log diff annotate
message kqueue: Clear task when closing kqueue

When closing a kqueue, block until any pending wakeup task has finished.
Otherwise, if a pending task progressed slowly, the kqueue could stay
alive longer than the associated file descriptor table, causing
a use-after-free in KQRELE().

This also fixes a failed assertion "p->p_kq->kq_refcnt.r_refs == 1" in
kqpoll_exit().

The use-after-free bug had existed since the introduction of
kqueue_task() (the bug could occur if fdplock() blocked in KQRELE()).
However, the issue became worse when the task was allowed to run without
the kernel lock in sys/kern/kern_event.c r1.187.

Prompted by a report from Mikhail on bugs@.

OK mpi@

Reported-by: [email protected]

date 2022-06-27T13:39:58Z
author visa
files src/sys/nfs/nfs_node.c log diff annotate
message Fix lock order reversal in nfs_inactive()

Make the silly file removal happen after the vnode has been unlocked.
This avoids a file-directory reversal in the vnode locking order.

OK jca@

date 2022-06-27T14:11:44Z
author visa
files src/sys/sys/conf.h log diff annotate
message Remove switch(4) leftovers.

OK deraadt@ mpi@ claudio@ miod@

date 2022-06-27T14:26:05Z
author cheloha
files src/sys/kern/init_sysent.c log diff annotate
src/sys/kern/syscalls.master log diff annotate
src/sys/sys/proc.h log diff annotate
message kbind(2): unlock syscall, push kernel lock down to binding loop

- Rearrange the security check code in sys_kbind() so that we only
need to take the kernel lock once if we need to raise SIGILL.

- Protect process.ps_kbind_addr and process.ps_kbind_cookie with
process.ps_mtx. This is easier to do after the aforementioned
rearrangement. Under normal circumstances this isn't necessary:
the process is single-threaded when we initialize kbind(2).
But in stranger situations this brief mutex ensures that the
first thread to reach sys_kbind() initializes both variables.

- Wrap the binding loop with the kernel lock. We need to carefully
confirm that uvm_unmap_remove(), uvm_map_extract(), and
uvm_unmap_detach() are MP-safe in a subsequent patch before
completely removing the kernel lock from sys_kbind().

- Remove the kernel lock from kbind(2) in syscalls.master.

Prompted by mpi@, dlg@, and deraadt@. Current patch workshopped with
deraadt@. Based on a patch from dlg@.

With input from dlg@, bluhm@, mpi@, kettenis@, deraadt@, and
guenther@.

Thread: https://marc.info/?l=openbsd-tech&m=165274831829349&w=2

ok deraadt@ kettenis@ mpi@

date 2022-06-27T14:26:06Z
author cheloha
files src/sys/sys/syscall.h log diff annotate
src/sys/sys/syscallargs.h log diff annotate
src/sys/uvm/uvm_mmap.c log diff annotate
message kbind(2): unlock syscall, push kernel lock down to binding loop

- Rearrange the security check code in sys_kbind() so that we only
need to take the kernel lock once if we need to raise SIGILL.

- Protect process.ps_kbind_addr and process.ps_kbind_cookie with
process.ps_mtx. This is easier to do after the aforementioned
rearrangement. Under normal circumstances this isn't necessary:
the process is single-threaded when we initialize kbind(2).
But in stranger situations this brief mutex ensures that the
first thread to reach sys_kbind() initializes both variables.

- Wrap the binding loop with the kernel lock. We need to carefully
confirm that uvm_unmap_remove(), uvm_map_extract(), and
uvm_unmap_detach() are MP-safe in a subsequent patch before
completely removing the kernel lock from sys_kbind().

- Remove the kernel lock from kbind(2) in syscalls.master.

Prompted by mpi@, dlg@, and deraadt@. Current patch workshopped with
deraadt@. Based on a patch from dlg@.

With input from dlg@, bluhm@, mpi@, kettenis@, deraadt@, and
guenther@.

Thread: https://marc.info/?l=openbsd-tech&m=165274831829349&w=2

ok deraadt@ kettenis@ mpi@

date 2022-06-27T15:05:34Z
author dv
files src/sys/arch/amd64/amd64/vmm.c log diff annotate
message vmm: zero virtual addresses of vcpu state pages after freeing

Consolidate the km_free calls while at it.

ok mlarkin@

date 2022-06-27T15:11:23Z
author jan
files src/sys/dev/pci/if_ix.c log diff annotate
src/sys/dev/pci/if_ix.h log diff annotate
src/sys/net/if.c log diff annotate
src/sys/net/if.h log diff annotate
message Introduce Large Receive Offloading of TCP segment offloading for ix(4). It is
disabled by default. Also add a tso option to ifconfig(8) to enable and
disable this feature.

ok deraadt

date 2022-06-27T15:12:14Z
author dv
files src/sys/arch/amd64/amd64/vmm.c log diff annotate
message vmm: move ept pointer configuration to vcpu_init_vmx

No need to be twiddling eptp in vcpu_reset_regs.

ok mlarkin@

date 2022-06-27T16:10:07Z
author deraadt
files src/sys/arch/amd64/stand/biosboot/biosboot.8 log diff annotate
message Delete the ancient "hold Shift key to force CHS" code. Noone has needed
this in decades.
ok sthen krw

date 2022-06-27T16:10:09Z
author deraadt
files src/sys/arch/amd64/stand/mbr/mbr.S log diff annotate
src/sys/arch/i386/stand/biosboot/biosboot.8 log diff annotate
src/sys/arch/i386/stand/mbr/mbr.S log diff annotate
message Delete the ancient "hold Shift key to force CHS" code. Noone has needed
this in decades.
ok sthen krw

date 2022-06-27T16:39:34Z
author jmc
files src/sys/arch/amd64/stand/biosboot/biosboot.8 log diff annotate
src/sys/arch/i386/stand/biosboot/biosboot.8 log diff annotate
message zap extraneous .Pp

date 2022-06-27T17:15:35Z
author bluhm
files src/sys/net/rtable.c log diff annotate
src/sys/net/rtsock.c log diff annotate
message Fix white space and wrap long lines.

date 2022-06-27T20:14:51Z
author miod
files src/sys/dev/ic/arcofi.c log diff annotate
message Fix comment.

date 2022-06-27T20:22:26Z
author miod
files src/sys/stand/boot/cmd.c log diff annotate
message Revert 1.44; that slow getsecs() workaround had been added for the sake of
an i386 system noone remembers details about and which is unlikely to be
relevant those days, and has been found to misbehave on some modern systems,
such as the OnLogic Helix 500, or RPi4 with glass console.

date 2022-06-27T20:47:10Z
author bluhm
files src/sys/net/if_ethersubr.c log diff annotate
src/sys/netinet/if_ether.c log diff annotate
message Push the kernel lock down into arpresolve(). We still need it to
prevent concurrent access to rt_llinfo from rtrequest_delete().
But the common case, when the MAC address is already known, works
without lock.
tested by Hrvoje Popovski; OK mvs@

date 2022-06-27T21:26:46Z
author claudio
files src/sys/net/route.c log diff annotate
src/sys/net/route.h log diff annotate
src/sys/net/rtsock.c log diff annotate
message Rework the rttimer code. Instead of a global queue and a global timeout
use a per rttimer struct timeout. On enqueue the struct rttimer belongs
to the timeout, in case the route is removed before the timer fires
cleanup based on the timeout_del() return value. If the timeout currently
running then just clear the rtt_rt pointer and let the timeout handle the
cleanup. This should hopefully fix the icmp_pmtu_timeout crashes reported
by some people.
OK bluhm@