OpenBSD cvs log

created 2021-11-21T19:51:50Z
begin 2021-11-03T00:00:00Z
end 2021-11-10T00:00:00Z
path src/sys
commits 31

date 2021-11-03T02:33:46Z
author jsg
files src/sys/dev/pci/drm/ttm/ttm_bo_util.c log diff annotate
message drm/ttm: fix memleak in ttm_transfered_destroy

From Christian Koenig
c21b4002214c1c7e7b627b9b53375612f7aab6db in linux 5.10.y/5.10.77
0db55f9a1bafbe3dac750ea669de9134922389b5 in mainline linux

date 2021-11-03T02:37:48Z
author jsg
files src/sys/dev/pci/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c log diff annotate
message drm/amdgpu: fix out of bounds write

From Thelford Williams
eb3b6805e3e9d98b2507201fd061a231988ce623 in linux 5.10.y/5.10.77
5afa7898ab7a0ec9c28556a91df714bf3c2f725e in mainline linux

date 2021-11-03T11:52:59Z
author krw
files src/sys/net80211/ieee80211_node.c log diff annotate
message In addition to the WEP key(s) being set at device initialization with
'nwid'/'nwkey', the keys will be set at random times when 'join'/'nwkey' is
used. So also stop trying to set IEEE80211_CIPHER_NONE keys on that path.

James Hastings confirms this fixes his '(null node)' panics on run(4). Thanks!

ok stsp@

date 2021-11-04T12:52:37Z
author jsg
files src/sys/dev/pci/drm/ttm/ttm_bo_util.c log diff annotate
message revert rev 1.30 of ttm_bo_util.c

Laurence Tratt reported firefox would hard lock a machine
with polaris12 with the ttm change from linux 5.10.77.
robert@ also hit the same problem.

date 2021-11-04T14:45:07Z
author tobhe
files src/sys/netinet/ip_esp.c log diff annotate
message The authenticator is removed elsewhere.

ok patrick@

date 2021-11-05T09:36:30Z
author patrick
files src/sys/dev/fdt/imxehci.c log diff annotate
message Newer i.MX device trees retriee the USB phy using the more generic property
name "phys". To handle those, make sure that we look it up and in case it's
not there fall back to "fsl,usbphy".

ok kettenis@

date 2021-11-05T11:38:29Z
author mpi
files src/sys/dev/pv/if_vio.c log diff annotate
src/sys/dev/pv/pvbus.c log diff annotate
src/sys/dev/pv/pvclock.c log diff annotate
src/sys/dev/pv/vioblk.c log diff annotate
src/sys/dev/pv/viocon.c log diff annotate
src/sys/dev/pv/viomb.c log diff annotate
src/sys/dev/pv/viornd.c log diff annotate
src/sys/dev/pv/vioscsi.c log diff annotate
src/sys/dev/pv/vmmci.c log diff annotate
src/sys/dev/pv/vmt.c log diff annotate
message Constify struct cfattach.

date 2021-11-05T11:38:51Z
author mpi
files src/sys/dev/usb/if_bwfm_usb.c log diff annotate
message Constify struct cfattach.

date 2021-11-05T11:38:52Z
author mpi
files src/sys/dev/usb/if_urndis.c log diff annotate
message Constify struct cfattach.

date 2021-11-05T15:18:24Z
author patrick
files src/sys/dev/fdt/if_fec.c log diff annotate
message Newer i.MX device trees store the skew information in the PHY's node, which
we can access through the phy-handle. If there's no reference, keep doing
what we have been doing so far.

ok kettenis@

date 2021-11-06T05:26:33Z
author visa
files src/sys/kern/uipc_socket.c log diff annotate
src/sys/kern/uipc_socket2.c log diff annotate
src/sys/sys/socketvar.h log diff annotate
message Allocate socket and initialize so_lock in one place

This makes witness(4) use a single lock type for tracking so_lock.
Previously, so_lock was covered by two distinct lock types because there
were separate rw_init() initializers in socreate() and sonewconn().

OK kettenis@

date 2021-11-06T05:48:47Z
author visa
files src/sys/kern/kern_event.c log diff annotate
message Make kqread event filter MP-safe

Use the monitored kqueue's kq_lock to serialize kqueue and knote access.

Typically, the "object lock" would cover also the klist, but that is not
possible with kqueues. knote_activate() needs kq_lock of the monitoring
kqueue, which would create lock order troubles if kq_lock was held when
calling KNOTE(&kq->kq_sel.si_note). Avoid this by using a separate klist
lock for kqueues.

The new klist lock is system-wide. Each kqueue instance could have
a dedicated klist lock. However, the efficacy of dedicated versus
system-wide lock is somewhat limited because the current implementation
activates kqueue knotes through a single thread.

OK mpi@

date 2021-11-06T17:35:14Z
author mvs
files src/sys/kern/uipc_usrreq.c log diff annotate
src/sys/sys/unpcb.h log diff annotate
message Make `unp_msgcount' and `unp_file' atomic. Introduce `unp_rights_mtx'
mutex(9) to protect `unp_rights'.

This removes global rwlock(9) from unp_internalize() and unp_externalize()
normal paths and leaves it in the unp_externalize() error path only. Also
we don't need to simultaneously hold fdplock() and `unp_lock' within
unp_internalize().

The `unp_rights' can't be atomic. Otherwise the thread which exceeding the
limit will break all other not-exceeding threads until it decrements
`unp_rights'. That why the mutex(9) used for protection.

It's safe to call fptounp() without `unp_lock' held. We always got this
file descriptor by fd_getfile(9) so we always have the extra reference
and this descriptor can't be closed by concurrent thread. Some sockets
could be destroyed through 'PRU_ABORT' path but they don't have
associated file descriptor and they are not accessible in the
unp_internalize() path.

The `unp_file' access without `unp_lock' held is also safe. Each socket
could have the only associated file descriptor and each file descriptor
could have the only associated socket. We only assign `unp_file' in the
unp_internalize() path where we got the socket by fd_getfile(9). This
descriptor has the extra reference and couldn't be closed concurrently.
We could override `unp_file' but with the same address because the
associated file descriptor can't be changed so the address will be also
the same. While unp_gc() concurrently runs the dereference of
non-NULL `unp_file' is always safe.

Discussed with kettenis@ and mpi@.

ok mpi@

date 2021-11-07T12:05:28Z
author claudio
files src/sys/sys/socket.h log diff annotate
message Fix tpyo of ecma. Reported by Matthew (chohag at jtan dot com)

date 2021-11-07T14:07:43Z
author stsp
files src/sys/dev/ic/dwiic.c log diff annotate
message Fix handling of interrupts shared between multiple dwiic(4) devices.

Interrupt sharing did not work correctly when two dwiic(4) devices
share an interrupt line. We ended up with an interrupt storm.
One of the two interrupt handlers would see interrupt status bits set
to zero but claim the interrupt regardless. The second handler would
never get to run, and the interrupt condition on the second device was
not cleared as a result. Fix this by returning zero from dwiic_intr()
if the device's interrupt status bits read back as zero.

The storm occurred as soon as X11 was started. xenodm(1) never managed to
display its login prompt. Observed on the Thinkpad Helix2 which had been
unable to start X since dwiic(4) started to attach on this machine in 2018.
(I already saw the problem back then but never dug into it, and temporarily
lost access to helix2 hardware for a long time.)

With help from jcs@ who provided debugging hints already back in 2018.
ok kettenis@

date 2021-11-07T15:59:09Z
author patrick
files src/sys/dev/fdt/simplepanel.c log diff annotate
message Constify struct cfattach, not struct cfdriver.

Fixes panic seen on the Pinebook Pro.

date 2021-11-07T16:06:31Z
author patrick
files src/sys/arch/amd64/conf/RAMDISK_CD log diff annotate
message Enable igc(4).

ok deraadt@

date 2021-11-07T16:40:30Z
author kn
files src/sys/dev/fdt/gpioleds.c log diff annotate
message Simplify print logic

OK patrick

date 2021-11-07T16:43:12Z
author kn
files src/sys/dev/fdt/gpioleds.c log diff annotate
message Fall back to label if function is missing

The "label" property is obsolete and "function" should be used,
but devices like the Raspberry Pi 4b still use it.

Detect LEDs on such machines:

-gpioleds0 at mainbus0: no LEDs
+gpioleds0 at mainbus0: "led0", "led1"

OK patrick

date 2021-11-07T19:38:25Z
author sthen
files src/sys/netinet6/nd6.c log diff annotate
message net.inet6.icmp6.nd6_debug doesn't need to warn about RDNSS/DNSSL options
ok phessler@

date 2021-11-08T04:15:46Z
author dlg
files src/sys/net/if_veb.c log diff annotate
message veb rules are an smr list, so traversal should be in an smr crit section

reported by stsp@
an earlier diff was tested by and ok stsp@
ok jmatthew@

date 2021-11-08T04:50:54Z
author dlg
files src/sys/net/if_mpe.c log diff annotate
message whitespace tweaks, no functional change.

date 2021-11-08T04:54:44Z
author dlg
files src/sys/net/if_bpe.c log diff annotate
message whitespace tweak, no functional change

date 2021-11-08T07:05:21Z
author anton
files src/sys/dev/usb/uhidev.c log diff annotate
message Plug uhidev memory leak during detach.

Thanks to Damien Couderc <openbsd at petrocore dot eu> for testing and ok
gnezdo@

date 2021-11-08T14:51:30Z
author stsp
files src/sys/net80211/Attic/ieee80211_mira.c log diff annotate
src/sys/net80211/Attic/ieee80211_mira.h log diff annotate
message Send MiRA source files to the Attic.
These files were unhooked from the build in April 2021.

date 2021-11-08T14:52:08Z
author stsp
files src/sys/conf/files log diff annotate
message remove reference to ieee80211_mira.c which has been sent to the Attic

date 2021-11-08T22:36:18Z
author tobhe
files src/sys/netinet/ip_esp.c log diff annotate
message Use plen consistently.

ok patrick@

date 2021-11-09T06:25:42Z
author anton
files src/sys/dev/usb/uhidev.c log diff annotate
src/sys/dev/usb/uhidev.h log diff annotate
message The uhidevsubmatch() routine was imported from NetBSD back in 2002 along with
the reportid locator. The same locator was removed in 2004 making the routine
redundant.

ok gnezdo@ mpi@

date 2021-11-09T09:26:18Z
author jan
files src/sys/dev/pci/if_ixl.c log diff annotate
message Add IPv4, TCP4/6 and UDP4/6 checksum offloading.

ok jmatthew@

date 2021-11-09T16:10:42Z
author kn
files src/sys/arch/arm64/conf/GENERIC log diff annotate
src/sys/dev/fdt/files.fdt log diff annotate
message Sort gpio{leds,charger}

date 2021-11-09T16:16:11Z
author kn
files src/sys/arch/arm64/conf/GENERIC log diff annotate
src/sys/dev/fdt/files.fdt log diff annotate
src/sys/dev/fdt/gpiokeys.c log diff annotate
message Add gpiokeys(4) for arm64

This driver handles events triggered by GPIO keys such as lid status and
power button.

OK kettenis