OpenBSD cvs log

created 2022-03-17T12:44:42Z
begin 2022-02-02T00:00:00Z
end 2022-02-09T00:00:00Z
path src/sys
commits 45

date 2022-02-02T02:51:53Z
author jsg
files src/sys/dev/pci/drm/drm_atomic.c log diff annotate
message drm/atomic: Add the crtc to affected crtc only if uapi.enable = true

From Manasi Navare
73740f948252e424a01465155d8737bceae23653 in linux 5.15.y/5.15.19
5ec1cebd59300ddd26dbaa96c17c508764eef911 in mainline linux

date 2022-02-02T02:56:36Z
author jsg
files src/sys/dev/pci/drm/amd/display/dc/dcn30/dcn30_resource.c log diff annotate
message drm/amd/display: Fix FP start/end for dcn30_internal_validate_bw.

From Bas Nieuwenhuizen
548f20b39ec91fdd97194a84a0d9b2f68715762a in linux 5.15.y/5.15.19
72a8d87b87270bff0c0b2fed4d59c48d0dd840d7 in mainline linux

date 2022-02-02T03:48:48Z
author jsg
files src/sys/dev/pci/pccbb.c log diff annotate
message unifdef __NetBSD_Version__

date 2022-02-02T03:55:29Z
author jsg
files src/sys/dev/pci/sv.c log diff annotate
message unifdef __OpenBSD__

date 2022-02-02T04:05:16Z
author deraadt
files src/sys/dev/acpi/acpi.c log diff annotate
message acpi_addtask() calls malloc() w/ M_NOWAIT (because some calls come from
interrupt context), this however means occasional resource shortage will
result in callbacks registration failing, and unknown consequences for
the task-submitting caller.
Changing this to use pools with a low water mark, decreases the odds
of that problem occuring.
ok kettenis

date 2022-02-02T17:11:36Z
author miod
files src/sys/arch/macppc/pci/mpcpcibus.c log diff annotate
message Get the pci bus number from the bus-range property when available, rather
than assuming it will always be zero.

ok kettenis@

date 2022-02-02T22:55:57Z
author kettenis
files src/sys/arch/arm64/conf/files.arm64 log diff annotate
src/sys/arch/arm64/dev/apldma.c log diff annotate
src/sys/arch/arm64/dev/apldma.h log diff annotate
message Add apldma(4), a driver for the DMA controller found on Apple SoCs.
This driver implements an interface for using DMA for audio output.

ok ratchov@

date 2022-02-03T02:39:45Z
author jsg
files src/sys/arch/amd64/conf/Makefile.amd64 log diff annotate
message sync list of amdgpu files built with -msse -msse2 with linux 5.15.y

date 2022-02-03T04:45:01Z
author jsg
files src/sys/dev/pci/drm/files.drm log diff annotate
message inteldrm now requires ttm

date 2022-02-03T17:06:09Z
author kn
files src/sys/uvm/uvm_km.c log diff annotate
message Use UVM_KMF_TRYLOCK for consistency

No object change.
OK millert

date 2022-02-03T17:18:22Z
author guenther
files src/sys/sys/malloc.h log diff annotate
message Delete unused/obsolete M_* type values.

ok miod@ mpi@

date 2022-02-03T19:57:11Z
author guenther
files src/sys/uvm/uvm_fault.c log diff annotate
message The sparc64 pmap at least requires the fault access_type to be a
subset of the request permissions, so when forcing an initial RO
fault for CoW also clamp the access_type.

problem reported by bluhm@
based on a suggestion from miod@
ok kettenis@

date 2022-02-03T22:24:09Z
author jsg
files src/sys/dev/pci/drm/i915/i915_drv.c log diff annotate
message store root bridge data in softc before calling intel_init_stolen_res()
should fix panic on boot on x41 reported by Fred Crowson

date 2022-02-04T08:06:48Z
author robert
files src/sys/dev/acpi/acpi.c log diff annotate
message set the APM_BATT_CHARGING state if the battery is being charged and try
to calculate the remaining time to be fully charged

ok jca@

date 2022-02-04T17:50:28Z
author tedu
files src/sys/kern/kern_pledge.c log diff annotate
message whitelist resolv.conf for stat. go dns library does this.
ok deraadt

date 2022-02-04T18:15:40Z
author kettenis
files src/sys/arch/arm64/include/pmap.h log diff annotate
message Define __HAVE_PMAP_MPSAFE_ENTER_COW; the ARMv8 architecture requires
that we implement proper "break-before-make" semantics and I've stared
at the code for long enough that I've convinced myself that we do indeed
implement this correctly several times.

ok guenther@

date 2022-02-04T22:24:09Z
author kettenis
files src/sys/dev/ofw/ofw_clock.h log diff annotate
message Add prototype for clock_set_frequency_idx().

date 2022-02-05T03:56:16Z
author dlg
files src/sys/net/if_aggr.c log diff annotate
message remove an extra set of brackets. no functional change.

date 2022-02-05T04:08:27Z
author dlg
files src/sys/net/bpf.c log diff annotate
message make bpf_movein align the packet payload.

bluhm@ hit a problem while running a regress test where a packet
generated and injected via bpf ends up being consumed by the network
stack. the stack assumes that packets are aligned properly, but bpf
was lazy and put whatever was written to it at the start of an mbuf.
ethernet has a 14 byte header, so if you put that at the start the
payload will be misaligned by 2 bytes.

bpf already has handling for different link header types, so this
handling is extended a bit to align the payload after the link
header.

while here we're fixing up a few error codes. short packets produce
EINVAL instead of EPERM, and packets larger than the biggest mbuf
the kernel supports generates EMSGSIZE.

with tweaks and ok bluhm@

date 2022-02-05T07:31:40Z
author anton
files src/sys/dev/usb/uhidpp.c log diff annotate
message Only install the sensors once as multiple devices can be paired with the
same receiver. Prevents a newly added assertion from triggering.

Problem reported by Joel Carnat <joel at carnat dot net> on bugs@

date 2022-02-05T09:37:06Z
author kettenis
files src/sys/arch/amd64/amd64/vm_machdep.c log diff annotate
message Switch vmapbuf() and vunmapbuf() over to km_alloc(9) and km_free(9) like
we did for arm64 and powerpc64 some time ago.

ok guenther@

date 2022-02-05T20:31:26Z
author daniel
files src/sys/arch/i386/include/param.h log diff annotate
message grow the dmesg buffer on i386 from 4 to 8 pages

I have a machine where the dmesg is too big for 4 pages.

ok deraadt@

date 2022-02-06T09:57:59Z
author claudio
files src/sys/kern/kern_sig.c log diff annotate
message Simplify cursig() a bit and make sure that signals are always sent to
the parent of ptraced processes. Especially ignore the signal mask set
by sigprocmask(2) in that case. In userret() alter the testcase for
when to call cursig() which is only there to avoid taking the
KERNEL_LOCK when returning from a MP safe syscall. This can be revisited
once cursig() is MP safe.
Problem with debugging signal handlers found by kurt@
Tested and OK kurt@, OK mpi@

date 2022-02-06T17:24:58Z
author rob
files src/sys/dev/rnd.c log diff annotate
message s/poll/pool

date 2022-02-06T19:10:07Z
author kettenis
files src/sys/arch/arm64/dev/apldart.c log diff annotate
message Avoid touching "locked" DARTs. While there, print something when we place
a DART in bypass mode.

ok patrick@

date 2022-02-07T11:03:34Z
author claudio
files src/sys/net/route.c log diff annotate
message In rtredirect() change an bad assignment in an if condition to the
correct equality check.
Found by and OK jsg@

date 2022-02-07T13:16:42Z
author kettenis
files src/sys/dev/pci/drm/drm_linux.c log diff annotate
message Convert KVA allocation to km_alloc(9).

ok jsg@

date 2022-02-07T13:17:27Z
author rob
files src/sys/sys/proc.h log diff annotate
message Sync ps.1 with sys/proc.h. Tweaked by deraadt@.
Ok millert@ deraadt@

date 2022-02-07T15:23:43Z
author bluhm
files src/sys/netinet6/nd6.c log diff annotate
src/sys/netinet6/nd6_nbr.c log diff annotate
message Checking ifaddr pointer for NULL without checking in6_ifaddr works
as ifaddr ia_ifa is the first field of in6_ifaddr. So the pointers
are the same, and one NULL check works for both. But in ISO C NULL
has some kind of type and this is undefined behavior. So add a
second NULL check that the compiler can optimize away. The resulting
assembler is the same.
found by kubsan; OK tobhe@

date 2022-02-07T19:28:14Z
author rob
files src/sys/sys/proc.h log diff annotate
message Tweak previous.

date 2022-02-07T19:30:48Z
author guenther
files src/sys/kern/kern_exec.c log diff annotate
src/sys/sys/exec.h log diff annotate
message Delete STACKGAPLEN: this exec-time allocation at the top of the
original thread's stack hasn't been used since 2015.

ok miod@ deraadt@

date 2022-02-07T22:28:15Z
author gkoehler
files src/sys/arch/powerpc/ddb/db_trace.c log diff annotate
message Allow "ddb{1}> trace" through interrupt on macppc

If cpu0 sends PPC_IPI_DDB to cpu1, then cpu1 stops on its interrupt
stack. Teach ININTSTK to allow traces through all interrupt stacks,
not only cpu0's.

ININTSTK now works by looping for all cpus. It doesn't remember which
cpu owns the stack. A macppc has at most 4 cpus.

ok kettenis@ miod@

date 2022-02-07T22:57:47Z
author rob
files src/sys/sys/sysctl.h log diff annotate
message New status flag: 'c' - process is chrooted.
Feedback and tweaks from deraadt@ guenther@
Ok bluhm@ deraadt@

date 2022-02-07T23:20:09Z
author gkoehler
files src/sys/arch/powerpc/powerpc/pmap.c log diff annotate
message Allow writes to rw pages in pte_spill_v

In the powerpc pmap, hash collisions can spill page table entries.
Page faults can use pte_spill_v to reinsert a spilled pte. If the
fault is a write (DSISR_STORE), then pte_spill_v tries to check for a
read-only page. The existing check (pte_lo & PTE_RO_64) also matched
rw pages, because PTE_RO_64 is 3 and PTE_RW_64 is 2. This caused
pte_spill_v to deny writes to rw pages. Then uvm_fault might allow
the write; but uvm_fault can't handle some pages in the kernel. Such
faults caused, "panic: uvm_fault: fault on non-pageable map", or
"panic: trap type 300".

Change it to ((pte_lo & PTE_PP_64) == PTE_RO_64). This seems to fix
one reason why bsd.mp on a macppc dual G5 might panic.

ok kettenis@ miod@

date 2022-02-08T03:38:00Z
author dlg
files src/sys/dev/pci/if_ix.c log diff annotate
src/sys/dev/pci/ixgbe.h log diff annotate
message rework checksum/vlan offloading, and enable it for ipv6 too.

this is based on work by jan@ and bluhm@. the most interesting
change on top of their work is to move the parsing of the IP packets
to figure out ip and udp/tcp offsets before a possible call to
m_defrag.

if an l4 offload is requested, it's only requested by the stack
when the payload is correctly aligned and with each header contiguous
in memory. this means you can use m_getptr and cast the packet data
to the relevant headers to read them directly because that's what
the stack does when it's working on them. this makes it cheap to
work on them too.

however, if you m_defrag, it ignores the alignment and ends up
making it unsafe to dereference the ip and tcp/udp payloads on
strict alignment architectures. if we want to look at the headers
after m_defrag, we'd likely have to copy them onto the stack first.

we got away with this before because we were lucky with the code
that's generated on strict alignment archs for looking at the ip
hl and proto fields. that luck might run out though.

while here i've also tweaked the vlan handling code, and generally
tried to make it more readable.

ok bluhm@ jmatthew@

date 2022-02-08T08:56:41Z
author visa
files src/sys/kern/kern_event.c log diff annotate
src/sys/kern/sys_generic.c log diff annotate
src/sys/sys/event.h log diff annotate
src/sys/sys/eventvar.h log diff annotate
message poll(2): Switch to kqueue backend

Implement the poll(2) system call on top of the kqueue subsystem.
This obsoletes the old, non-MP-safe poll backend.

On entering poll(2), the new code translates each pollfd array entry
into a set of knotes. When these knotes receive events through kqueue,
the events are translated back to pollfd format.

Entries in the pollfd array can refer to the same file descriptor with
overlapping event masks. To allow such overlap with knotes, use an extra
kn_pollid key that separates knotes of different pollfd entries.

Adapted from DragonFly BSD, initial implementation by mpi@.

Tested in snaps for three weeks.

OK mpi@

date 2022-02-08T09:41:04Z
author jsg
files src/sys/dev/fdt/mvkpcie.c log diff annotate
message fix off by one in bounds test
ok miod@ kettenis@

date 2022-02-08T11:28:19Z
author dlg
files src/sys/kern/uipc_mbuf.c log diff annotate
message use sizeof(long) - 1 in m_pullup to determine payload alignment.

this makes it consistent with the rest of the network stack when
determining alignment.

ok bluhm@

date 2022-02-08T11:55:19Z
author dlg
files src/sys/dev/pci/if_ixl.c log diff annotate
message bring back IPv4, TCP4/6 and UDP4/6 checksum offloading.

this was first introduced in r1.176 by jan@. this diff includes two
fixes to that implementation.

the most important one is to parse the ip and tcp headers before a
possible call to m_defrag. if an l4 offload is requested, it's only
requested by the stack when the payload is correctly aligned and
with each header contiguous in memory. this means you can use
m_getptr and cast the packet data to the relevant headers to read
them directly because that's what the stack does when it's working
on them. this makes it cheap to work on them too.

however, if you m_defrag, it ignores the alignment and ends up
making it unsafe to dereference the ip and tcp/udp payloads on
strict alignment architectures. if we want to look at the headers
after m_defrag, we'd likely have to copy them onto the stack first.

the other fix is to reset the offload bits between packets in the
loop in ixl_start.

another difference is that this code skips parsing the packet if
no checksum offload is requested.

tests and a tweak by bluhm@ to actually use the offloading
tested by me on sparc64 and x86 boxes

ok bluhm@ jmatthew@

date 2022-02-08T14:24:36Z
author stsp
files src/sys/dev/pci/if_iwm.c log diff annotate
message Fix a KASSERT in iwm(4) being triggered for the wrong reason.

iwm_wakeup() must initialize the task reference counter only if
resuming the device succeeds. Otherwise, the newstate task will
not be scheduled and hence the ref counter must remain at zero.

Problem observed by + ok kettenis@

date 2022-02-08T17:25:10Z
author deraadt
files src/sys/arch/amd64/amd64/acpi_machdep.c log diff annotate
message The suspend/resume code is a sticky mess of MI, MD, and ACPI sequencing.
This splits out the MI sequencing, backing it with per-architecture helper
functions. Further steps will be neccesary because ACPI and MD are too
tightly coupled, but soon we'll be able to use this code for more architectures
(which depends on figuring out the lowest-level cpu sleeping method)
ok kettenis

date 2022-02-08T17:25:11Z
author deraadt
files src/sys/arch/amd64/conf/GENERIC log diff annotate
src/sys/arch/arm64/arm64/acpi_machdep.c log diff annotate
src/sys/arch/i386/conf/GENERIC log diff annotate
src/sys/arch/i386/i386/acpi_machdep.c log diff annotate
src/sys/conf/files log diff annotate
message The suspend/resume code is a sticky mess of MI, MD, and ACPI sequencing.
This splits out the MI sequencing, backing it with per-architecture helper
functions. Further steps will be neccesary because ACPI and MD are too
tightly coupled, but soon we'll be able to use this code for more architectures
(which depends on figuring out the lowest-level cpu sleeping method)
ok kettenis

date 2022-02-08T17:25:12Z
author deraadt
files src/sys/dev/acpi/acpi.c log diff annotate
src/sys/dev/acpi/acpibtn.c log diff annotate
src/sys/dev/acpi/acpisony.c log diff annotate
src/sys/dev/acpi/acpithinkpad.c log diff annotate
src/sys/dev/acpi/acpitoshiba.c log diff annotate
src/sys/dev/acpi/acpivar.h log diff annotate
src/sys/kern/subr_suspend.c log diff annotate
src/sys/sys/device.h log diff annotate
message The suspend/resume code is a sticky mess of MI, MD, and ACPI sequencing.
This splits out the MI sequencing, backing it with per-architecture helper
functions. Further steps will be neccesary because ACPI and MD are too
tightly coupled, but soon we'll be able to use this code for more architectures
(which depends on figuring out the lowest-level cpu sleeping method)
ok kettenis

date 2022-02-08T18:08:33Z
author deraadt
files src/sys/net/pf.c log diff annotate
message Do not /0 if timeout[PFTM_INTERVAL] manages to become zero
crash noticed by gnezdo, a seperate commit will fix the identified
cause, but being careful at this point is a good idea.
ok sashan

date 2022-02-08T23:19:47Z
author deraadt
files src/sys/arch/arm64/arm64/acpi_machdep.c log diff annotate
message oops, a typo snuck in