OpenBSD cvs log

created 2021-11-13T23:08:01Z
begin 2021-11-11T00:00:00Z
end 2021-11-12T00:00:00Z
path src/sys
commits 14

date 2021-11-11T07:04:45Z
author anton
files src/sys/dev/usb/uhidev.c log diff annotate
src/sys/dev/usb/uhidev.h log diff annotate
message Here we go again, revert the second attempt to resolve the
UHIDEV_CLAIM_MULTIPLE_REPORTID conflict.

Breaks fido(4) as reported by gnezdo@

date 2021-11-11T09:34:27Z
author tb
files src/sys/uvm/uvm_swap.c log diff annotate
message Convert a for loop into LIST_FOREACH to reduce the diff to NetBSD.

ok millert mpi

date 2021-11-11T10:03:08Z
author claudio
files src/sys/arch/alpha/alpha/conf.c log diff annotate
src/sys/arch/amd64/amd64/conf.c log diff annotate
src/sys/arch/arm/arm/conf.c log diff annotate
src/sys/arch/arm64/arm64/conf.c log diff annotate
message Retire switch(4) it never really was production ready and the OpenFlow
API implemented is a deadend.
OK akoshibe@ yasuoka@ deraadt@ kn@ patrick@ sthen@

date 2021-11-11T10:03:09Z
author claudio
files src/sys/arch/hppa/hppa/conf.c log diff annotate
src/sys/arch/i386/i386/conf.c log diff annotate
src/sys/arch/landisk/landisk/conf.c log diff annotate
src/sys/arch/loongson/loongson/conf.c log diff annotate
src/sys/arch/luna88k/luna88k/conf.c log diff annotate
src/sys/arch/macppc/macppc/conf.c log diff annotate
src/sys/arch/octeon/octeon/conf.c log diff annotate
src/sys/arch/powerpc64/powerpc64/conf.c log diff annotate
src/sys/arch/riscv64/riscv64/conf.c log diff annotate
src/sys/arch/sparc64/sparc64/conf.c log diff annotate
message Retire switch(4) it never really was production ready and the OpenFlow
API implemented is a deadend.
OK akoshibe@ yasuoka@ deraadt@ kn@ patrick@ sthen@

date 2021-11-11T10:03:10Z
author claudio
files src/sys/conf/GENERIC log diff annotate
src/sys/conf/files log diff annotate
src/sys/net/if.c log diff annotate
src/sys/net/if_bridge.h log diff annotate
src/sys/net/Attic/if_switch.c log diff annotate
src/sys/net/Attic/if_switch.h log diff annotate
src/sys/net/Attic/switchctl.c log diff annotate
src/sys/net/Attic/switchofp.c log diff annotate
src/sys/sys/sockio.h log diff annotate
message Retire switch(4) it never really was production ready and the OpenFlow
API implemented is a deadend.
OK akoshibe@ yasuoka@ deraadt@ kn@ patrick@ sthen@

date 2021-11-11T12:35:01Z
author sashan
files src/sys/net/if_pfsync.c log diff annotate
src/sys/net/pf_if.c log diff annotate
src/sys/net/pf_ioctl.c log diff annotate
src/sys/net/pf_table.c log diff annotate
src/sys/net/pfvar.h log diff annotate
message Allow pfi_kif_get() callers to pre-allocate buffer for new kif. If kif
object exists already, then caller must free the pre-allocated buffer.
If caller does not pre-allocate buffer, the pfi_kif_get() will get
memory from pool using M_NOWAIT flag.

Commit is also polishing pfi_initialize() a bit so it uses M_WAITOK
allocation for pfi_all.

there is no change in current behaviour.

feedback by bluhm@

OK bluhm@

date 2021-11-11T13:36:58Z
author stsp
files src/sys/dev/pci/if_iwn.c log diff annotate
src/sys/dev/pci/if_iwnreg.h log diff annotate
src/sys/dev/pci/if_iwnvar.h log diff annotate
message Fix iwn(4) with 4965 devices.

Our driver was using the wrong data structure for RXON_ASSOC commands on
4965 devices. This resulted in fatal firmware errors during association.

Problem found and fix tested on 4965 by jsg@.
Patch also tested on 6200 by me.

date 2021-11-11T14:03:21Z
author kn
files src/sys/.gitignore log diff annotate
message Ignore tags files

Besides obj (and all the build objects inside), tags seem to be the only
thing that's automatically created by our build infrastructure which should
never be committed.

CVS ignores "tags" due to its builtin list of ignore patterns.
Git does not ignore tags, although it has a builtin list (e.g. "*.o").
Got has no such builtin list.

Add "**/tags" to .gitignore specifically to provide a sane default for
Got checkouts.

Mirror .gitignore with sys/.gitignore to have the same experience with
kernel-only checkouts, as is common practise with Got.

OK stsp sthen

date 2021-11-11T16:35:09Z
author mvs
files src/sys/kern/uipc_socket.c log diff annotate
message Destroy protocol control block before perform `so_q0' and `so_q' queues
cleanup.

The dying socket is already unlinked from the file descriptor layer, but
still accessible from the stack or from the file system layer. We need to
unlink the socket to prevent concurrent connection when we unlocked dying
socket while we perform `so_q0' or `so_q' queues cleanup or while we
perform (*pr_detach)(). This unlocking will be appeared with the upcoming
fine grained locked sockets diffs.

ok bluhm@

date 2021-11-11T17:20:02Z
author mvs
files src/sys/kern/uipc_usrreq.c log diff annotate
message Use vnode(9) lock to protect `v_socket' dereference.

The bind(2)ed UNIX socket hat the reference from the file system layer.
When we bind(2) such socket we link it to `v_socket' of associated
vnode(9). When we connect(2) to the socket we previously bind(2)ed we
finding it by namei(9) and obtain it's reference through `v_socket'. When
we close(2) this socket we set `v_socket' of associated vnode(9) to NULL.

This time the global `unp_lock' rwlock(9) protects the whole layer and the
dereference of `v_socket'. With the upcoming fine grained locking diffs it
will be replaced by per-socket solock(). So the dereference of `v_socket'
will be unsafe because it will be unlocked and has no extra reference in
the associated file descriptor.

Actually we have vnode(9) locked while we perform unp_bind() and
unp_connect() paths so use vnode(9) lock in the unp_detach() path too when
we disconnect dying socket from the associated vnode(9). This makes
`v_socket' locking consistent because `v_socket' relies to vnode(9) layer.
Also this makes `v_socket' dereference safe for the upcoming fine grained
locking diffs.

Do `v_socket' unlinking before `unp_refs' list cleanup to prevent
concurrent connections while dying socket `so' is unlocked.

ok bluhm@

date 2021-11-11T18:08:17Z
author bluhm
files src/sys/net/if_bridge.c log diff annotate
message Do not call ip_deliver() recursively from IPsec. As there is no
crypto task anymore, it is possible to return the next protocol.
Then ip_deliver() will walk the header chain in its loop.
IPsec bridge(4) tested by jan@
OK mvs@ tobhe@ jan@

date 2021-11-11T18:08:18Z
author bluhm
files src/sys/netinet/ip_ah.c log diff annotate
src/sys/netinet/ip_esp.c log diff annotate
src/sys/netinet/ip_ipcomp.c log diff annotate
src/sys/netinet/ipsec_input.c log diff annotate
src/sys/netinet/tcp_subr.c log diff annotate
src/sys/netinet/udp_usrreq.c log diff annotate
message Do not call ip_deliver() recursively from IPsec. As there is no
crypto task anymore, it is possible to return the next protocol.
Then ip_deliver() will walk the header chain in its loop.
IPsec bridge(4) tested by jan@
OK mvs@ tobhe@ jan@

date 2021-11-11T18:36:59Z
author mvs
files src/sys/kern/uipc_usrreq.c log diff annotate
message Fix GENERIC kernel compilation.

date 2021-11-11T18:43:05Z
author kettenis
files src/sys/arch/arm64/dev/apldart.c log diff annotate
message The Apple DART has a nifty feature that allows us protection of subranges
of a page with a granularity of 32-bit words. Use this to expose just
those parts of memory to devices that we want the device to see. This
means that handing down a small mbuf to a network card driver no longer
gives the hardware access to other mbufs in the same page.

It turns out that bge(4) always does aligned 64-bit access to memory though.
So round up/down to the nearest 64-bit boundary to prevent triggering an
IOMMU fault.

ok patrick@