OpenBSD cvs log

created 2023-08-09T07:15:45Z
begin 2022-11-15T00:00:00Z
end 2022-11-22T00:00:00Z
path src/sys
commits 21

date 2022-11-15T17:16:44Z
author mvs
files src/sys/tmpfs/tmpfs_subr.c log diff annotate
message Take `vmobjlock' around uao_grow() and uao_shrink() calls to fix tmpfs
panics [1].

1. https://marc.info/?l=openbsd-bugs&m=165012301707403&w=2

from Leo Larnack <leo at pseven.xyz>

ok kn@ mpi@

date 2022-11-15T18:42:46Z
author claudio
files src/sys/netinet6/in6_ifattach.c log diff annotate
message Not assigning a link local address by default breaks various things.
A lot of code depends on a eui64 address to be present. So revert this
bit of the last commit.
OK florian@

date 2022-11-15T22:47:15Z
author mvs
files src/sys/kern/uipc_usrreq.c log diff annotate
message style(9) fix. No functional change.

date 2022-11-17T01:30:57Z
author dlg
files src/sys/dev/ic/re.c log diff annotate
message whitespace fixes. no functional change.

date 2022-11-17T18:05:43Z
author mvs
files src/sys/netinet/ip_var.h log diff annotate
message style(9) fix. No functional change.

date 2022-11-17T18:53:05Z
author deraadt
files src/sys/uvm/uvm_extern.h log diff annotate
src/sys/uvm/uvm_map.c log diff annotate
src/sys/uvm/uvm_mmap.c log diff annotate
message stack growth from setrlimit was never updated to set UVM_ET_STACK on
the entries, so the check-sp-at-system-call check failed. Quite strange
it took this long to find this.
ok kettenis

date 2022-11-17T18:53:12Z
author deraadt
files src/sys/kern/exec_subr.c log diff annotate
src/sys/kern/kern_exec.c log diff annotate
message stack growth from setrlimit was never updated to set UVM_ET_STACK on
the entries, so the check-sp-at-system-call check failed. Quite strange
it took this long to find this.
ok kettenis

date 2022-11-17T18:53:13Z
author deraadt
files src/sys/kern/kern_resource.c log diff annotate
message stack growth from setrlimit was never updated to set UVM_ET_STACK on
the entries, so the check-sp-at-system-call check failed. Quite strange
it took this long to find this.
ok kettenis

date 2022-11-17T23:26:07Z
author deraadt
files src/sys/uvm/uvm_map.h log diff annotate
message With regret, place mutexes after struct vm_map fields which are inspected
by libkvm and procmap(8). struct mutex can change based upon kernel
compile options, and the fields were dancing around
ok kettenis

date 2022-11-18T03:47:21Z
author deraadt
files src/sys/arch/mips64/mips64/trap.c log diff annotate
message mips64 code calls uvm_map_protect() directly, so needs to adapt:
stack growth from setrlimit was never updated to set UVM_ET_STACK on
the entries, so the check-sp-at-system-call check failed. Quite strange
it took this long to find this.
ok kettenis

date 2022-11-19T14:26:39Z
author kn
files src/sys/kern/sys_socket.c log diff annotate
message Push kernel lock into pru_control() aka. in6_control() / in_control()

so->so_state is already read without kernel lock inside soo_ioctl()
which calls pru_control() aka in6_control() and in_control().

OK mvs

date 2022-11-19T14:26:40Z
author kn
files src/sys/netinet/in.c log diff annotate
src/sys/netinet6/in6.c log diff annotate
message Push kernel lock into pru_control() aka. in6_control() / in_control()

so->so_state is already read without kernel lock inside soo_ioctl()
which calls pru_control() aka in6_control() and in_control().

OK mvs

date 2022-11-19T15:12:38Z
author mvs
files src/sys/net/if_pppx.c log diff annotate
message Decrease netlock pressure in pppx(4).

Push netlock down to pppx_add_session(). The 'pppx_if' structure has
the `pxi_ready' member to prevent access to incomplete `pxi', so we
don't need to hold netlock during all initialisation process. This
removes potential PR_WAITOK/M_WAITOK allocations impact on packet
processing. Also this removes relock dances around if_attach() and
if_detach() calls.

Do not grab netlock for FIONREAD. mbuf(9) queue doesn't rely on it.

Do not grab netlock around pipex_ioctl() call. pipex(4) has its own
protection and doesn't rely on netlock. We need to unlink pipex(4)
session before destroy associated `pxi', it can't be killed
concurrently. Also this stops to block packet processing when npppd(8)
periodically does PIPEXGCLOSED ioctl(2) commands.

The dummy FIONBIO case doesn't require any lock to be held.

The netlock remains to be taken around pppx_del_session() and
pppx_set_session_descr() because pppx(4) data structures rely on it.

Tested by Hrvoje Popovski.

ok yasuoka@

date 2022-11-19T16:02:37Z
author cheloha
files src/sys/arch/riscv64/include/_types.h log diff annotate
src/sys/arch/riscv64/include/cpu.h log diff annotate
src/sys/arch/riscv64/riscv64/clock.c log diff annotate
message riscv64: switch to clockintr

- Remove riscv64-specific clock interrupt scheduling bits from
cpu_info.
- Remove riscv64-specific randomized statclock() bits from
riscv64/clock.c.
- Remove the 'stat_count' evcount. All clock interrupts are
now counted via the 'clock_count' evcount.
- Wire up timer_intrclock.

With input from jca@, kettenis@. Tested by jca@.

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

ok kettenis@ jca@ mlarkin@

date 2022-11-19T16:23:48Z
author cheloha
files src/sys/arch/loongson/dev/apm.c log diff annotate
src/sys/arch/loongson/dev/glxclk.c log diff annotate
src/sys/arch/mips64/include/_types.h log diff annotate
src/sys/arch/mips64/include/cpu.h log diff annotate
src/sys/arch/mips64/mips64/clock.c log diff annotate
src/sys/arch/mips64/mips64/mips64_machdep.c log diff annotate
message mips64, loongson, octeon: switch to clockintr

- Remove mips64-specific clock interrupt scheduling bits from cpu_info.
- Add missing tick_nsec initialization to cpu_initclocks().
- Disable the glxclk interrupt clock on loongson. visa@/miod@ say it
can be removed later if it isn't useful for anything else.
- Wire up cp0_intrclock.

Notes:

- The loongson apm_suspend() changes are untested, but deraadt@ claims
APM suspend/resume on loongson doesn't work anyway.
- loongson and octeon now have a randomized statclock(), stathz = hz.

With input from miod@, visa@. Tested by miod@, visa@.

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

ok visa@ mlarkin@

date 2022-11-20T23:47:51Z
author dlg
files src/sys/dev/pci/if_rge.c log diff annotate
src/sys/dev/pci/if_rgereg.h log diff annotate
message port the kstat code from re(4) to rge(4)

this bit of the hardware works the same, so it's straightforward work.

ok jmatthew@

date 2022-11-21T07:27:10Z
author sashan
files src/sys/net/pf_if.c log diff annotate
message Fix DIOCIGETIFACES ioctl so all network interfaces
and interface groups are reported. The bug allowed
to enumerate the first 64 interfaces only.

The issue has been noticed and bug kindly reported
by Olivier Croquin.

OK kn@

date 2022-11-21T14:39:23Z
author kettenis
files src/sys/arch/arm64/dev/aplhidev.c log diff annotate
message Wait for a reply to the command that switches the touchpad into raw mode.
If we don't do this, the SMC appears to crash on machines with firmware
from macOS 12.6.1. Insert a small delay of 1ms after sending the command
as polling for the reply too soon makes the command fail.

ok tobhe@

date 2022-11-21T20:19:21Z
author kettenis
files src/sys/arch/arm64/arm64/machdep.c log diff annotate
src/sys/arch/arm64/arm64/pmap.c log diff annotate
src/sys/arch/arm64/include/pmap.h log diff annotate
message Get rid of pmap_map_early(). This is part of my crusade against the use of
1G mappings for the PA = VA identity mapping used in the early boot phase
of the kernel and when spinning up CPUs. The mappings are dangerous since
they might (unintentially) covering address ranges that should not be
mapped (i.e. secure memory) which is dangerous on arm64 since the
architecture allows speculative access to any address for which a valid
mapping exists and even speculative access may cause the machine to
misbehave.

So instead of relying on the PA = VA identity mapping, call pmap_bootstrap()
earlier such that we can use pmap_kenter_cache() to enter mappings for the
FDT.

ok miod@

date 2022-11-21T21:48:06Z
author kettenis
files src/sys/arch/arm64/conf/files.arm64 log diff annotate
src/sys/arch/arm64/dev/aplpwm.c log diff annotate
message Add aplpwm(4), a driver for the PWM controller found on Apple silicon.

ok tobhe@

date 2022-11-21T22:50:07Z
author kn
files src/sys/net/pf_if.c log diff annotate
message Replace manual loop and duplicate RB_NEXT with RB_FOREACH

The loop begins with saving a pointer to the next interface, does work and
then gets the same next interface again, for nothing.

Switch to the elsewhere consistently used RB_FOREACH helper.

OK sashan