OpenBSD cvs log

created 2021-11-06T23:44:42Z
begin 2021-10-30T00:00:00Z
end 2021-10-31T00:00:00Z
path src/sys
commits 14

date 2021-10-30T03:22:08Z
author jsg
files src/sys/dev/pci/pcidevs log diff annotate
message add Intel 600 Series and Alder Lake S ids

described in
648364-001 Intel 600 Series Chipset Family Platform Controller Hub Datasheet
655258-001 12th Generation Intel Core Processors Datasheet

date 2021-10-30T03:22:44Z
author jsg
files src/sys/dev/pci/pcidevs.h log diff annotate
src/sys/dev/pci/pcidevs_data.h log diff annotate
message regen

date 2021-10-30T03:24:59Z
author jsg
files src/sys/dev/pci/azalia.c log diff annotate
message enable snooping on Intel 600 Series

date 2021-10-30T03:27:35Z
author jsg
files src/sys/dev/pci/dwiic_pci.c log diff annotate
src/sys/dev/pci/ichiic.c log diff annotate
src/sys/dev/pci/pucdata.c log diff annotate
message match on Intel 600 Series

date 2021-10-30T11:56:19Z
author ratchov
files src/sys/dev/usb/uhidev.h log diff annotate
message Revert previous commit as it's causing panic when devices are detached

ok sthen, anton

date 2021-10-30T12:26:26Z
author ratchov
files src/sys/dev/midi.c log diff annotate
src/sys/dev/midivar.h log diff annotate
message Defer selwakeup() calls to a softintr

selwakeup() needs to be protected by KERNEL_LOCK, but we're not
allowed to grab KERNEL_LOCK on interrupt context because midi runs at
IPL_AUDIO with the audio_lock held. Furthermore, doing so is a locking
order bug: syscall code-path grabs KERNEL_LOCK first while interrupt
code-path does the opposite when calling selwakeup().

ok visa

date 2021-10-30T12:40:55Z
author ratchov
files src/sys/dev/midi.c log diff annotate
message Disestablish softintrs upon detach (missed in last commit)

During detach, we can't rely on softintrs to signal processes blocked
in read, write or poll, so we need to explicitely call wakeup
functions in the detach method, as other drivers do.

date 2021-10-30T12:48:11Z
author ratchov
files src/sys/dev/midi.c log diff annotate
message Fix build break caused by accidental keystroke during last commit

date 2021-10-30T14:50:54Z
author kettenis
files src/sys/arch/arm64/dev/aplpinctrl.c log diff annotate
message Add GPIO functionality (including support for using GPIOs as interrupt pins).
Needed for upcoming Apple M1 laptop keyboard support.

ok patrick@

date 2021-10-30T16:24:18Z
author mvs
files src/sys/kern/uipc_usrreq.c log diff annotate
message Fix the UNIX domain sockets leak in soclose().

Each listening socket has two queues, the `so_q0' where partial connected
sockets linked and the `so_q' where connected but not yet accept(2)ed
sockets linked. Such sockets has no file descriptor allocated, so they
have no access from the userland. When the socket linked to `so_q0' or
`so_q' it has it's `so_head' pointed to the listening socket. The userland
receive sockets from `so_q' by accept(2) which allocates the file
descriptor to the socket.

When userland close(2) listening socket, soclose() should release the
sockets linked to `so_q0' and `so_q' because it's the only place where
they are referenced. It removes the socket from the queue by soqremque().
Since socket is not in the queue it's `so_head' is NULL. Then the socket
passed to soabort() which should destroy it by (*pr_usrreq)() call with
'PRU_ABORT' request.

In UNIX domain sockets layer the unp_drop() only disconnects passed socket
and doesn't destroy it because it's `so_head' is NULL. This socket has the
only access by the UNIX domain sockets garbage collector which leaves it
alive, so the socket is permanently leaked.

This leak was introduced in the revision 1.26 of sys/uipc_socket.c when
soqremque() was placed before soabort(). To fix this the unp_drop() was
replaced by unp_detach() and sofree() in the 'PRU_ABORT' path. unp_drop()
only sets the error and disconnects passed socket. We don't expose this
error and unp_detach() also disconnects the socket before destroy it's
protocol control block. sofree() destroys the rest.

The socket passed to soabort() has no vnode(9) associated, so unp_detach()
don't release `unp_lock'. Also this socket never had associated file
descriptor so it already has 'SS_NOFDREF' flag set.

This diff was also applied to 6.9 and 7.0 branches as errata.

date 2021-10-30T16:35:31Z
author mvs
files src/sys/kern/uipc_usrreq.c log diff annotate
message Kill the dead code from unp_drop().

The unp_drop() was removed from the 'PRU_ABORT' path in the previous
commit. Now it only remains in the unp_detach() where disconnects the
connected datagram sockets linked to the `unp_link' list. Such sockets
always have the associated file descriptor and never had been linked to
the `so_q0' or `so_q' of listening socket so their `so_head' is always
NULL.

ok millert@ sashan@ mpi@

date 2021-10-30T23:24:46Z
author deraadt
files src/sys/dev/acpi/acpi.c log diff annotate
message Change hw.perfpolicy=auto by default, at startup. If the system has AC
power connected (default is yes when no driver differentiates) then default
to 100% performance. On battery, use the existing auto algorithm (which is
admittedly somewhat unrefined).
This change overrides the system/BIOS speed and puts OpenBSD in control.
As this happens very early during boot, besides speedups in all usage usage
patterns, some surprises: unhibernate and sysupgrade times are cut in half.
note: on a few architectures, the setperf fn pointer is changed late, and
thus the auto algorithm stops timeing out. kettenis and i will look for
a solution.
in snaps for more than a week.
ok kettenis

date 2021-10-30T23:24:47Z
author deraadt
files src/sys/dev/acpi/acpiac.c log diff annotate
message Change hw.perfpolicy=auto by default, at startup. If the system has AC
power connected (default is yes when no driver differentiates) then default
to 100% performance. On battery, use the existing auto algorithm (which is
admittedly somewhat unrefined).
This change overrides the system/BIOS speed and puts OpenBSD in control.
As this happens very early during boot, besides speedups in all usage usage
patterns, some surprises: unhibernate and sysupgrade times are cut in half.
note: on a few architectures, the setperf fn pointer is changed late, and
thus the auto algorithm stops timeing out. kettenis and i will look for
a solution.
in snaps for more than a week.
ok kettenis

date 2021-10-30T23:24:48Z
author deraadt
files src/sys/kern/kern_sysctl.c log diff annotate
src/sys/kern/sched_bsd.c log diff annotate
src/sys/sys/sysctl.h log diff annotate
message Change hw.perfpolicy=auto by default, at startup. If the system has AC
power connected (default is yes when no driver differentiates) then default
to 100% performance. On battery, use the existing auto algorithm (which is
admittedly somewhat unrefined).
This change overrides the system/BIOS speed and puts OpenBSD in control.
As this happens very early during boot, besides speedups in all usage usage
patterns, some surprises: unhibernate and sysupgrade times are cut in half.
note: on a few architectures, the setperf fn pointer is changed late, and
thus the auto algorithm stops timeing out. kettenis and i will look for
a solution.
in snaps for more than a week.
ok kettenis