OpenBSD cvs log

created 2019-04-30T03:17:55Z
begin 2019-02-07T00:00:00Z
end 2019-02-14T00:00:00Z
path src/sys
commits 27

date 2019-02-07T07:38:33Z
author patrick
files src/sys/dev/ic/bwfm.c log diff annotate
message There's a task ring for executing commands in a sleep-safe context.
This task is used to deliver mbufs (for events, not data), but it's
possible that the queue overruns. In that case it does leak mbufs.
For now, assert the size to see if we hit the issue.

date 2019-02-07T07:39:56Z
author patrick
files src/sys/dev/ic/bwfm.c log diff annotate
src/sys/dev/pci/if_bwfm_pci.c log diff annotate
src/sys/dev/sdmmc/if_bwfm_sdio.c log diff annotate
message Consistently use m_freem(9). This fixes possible leaks in a few
error cases.

date 2019-02-07T15:11:38Z
author visa
files src/sys/kern/subr_witness.c log diff annotate
src/sys/sys/malloc.h log diff annotate
src/sys/sys/sysctl.h log diff annotate
message Add lock stack trace saving for witness(4).

This lets witness(4) save a stack trace on each lock acquisition.
The saved traces can be viewed in ddb(4) when showing the currently
held locks, which may help when debugging incorrect locking.

Sample output:

ddb{0}> show all locks
Process 63836 (rm) thread 0xffff8000221e52c8 (435004)
exclusive rrwlock inode r = 0 (0xfffffd8119a092c0) locked @ /usr/src/sys/ufs/ufs/ufs_vnops.c:1547
#0 witness_lock+0x419
#1 _rw_enter+0x2bb
#2 _rrw_enter+0x42
#3 VOP_LOCK+0x3f
#4 vn_lock+0x36
#5 vfs_lookup+0xa1
#6 namei+0x2b3
#7 dounlinkat+0x85
#8 syscall+0x338
#9 Xsyscall+0x128
exclusive kernel_lock &kernel_lock r = 1 (0xffffffff81e6a5f0) locked @ /usr/src/sys/arch/amd64/amd64/intr.c:525
#0 witness_lock+0x419
#1 syscall+0x2b6
#2 Xsyscall+0x128

The saving adds overhead, so it is not enabled by default. It can be
taken into use by setting sysctl kern.witness.locktrace=1 at runtime
or by defining WITNESS_LOCKTRACE in the kernel configuration.

Feedback and OK anton@

date 2019-02-08T12:51:57Z
author bluhm
files src/sys/kern/kern_exec.c log diff annotate
message Fix stack info leak in execve(2). There are 2x4 bytes of padding
in struct ps_strings.
from NetBSD; OK deraadt@ guenther@ visa@

date 2019-02-08T16:52:54Z
author bluhm
files src/sys/net/rtsock.c log diff annotate
message Fix kernel info leak in routing message.
from NetBSD; OK deraadt@ visa@

date 2019-02-08T20:28:54Z
author procter
files src/sys/netmpls/mpls_input.c log diff annotate
message fix ipv4 checksum fixup; this trick requires an accumulator of exactly twice the checksum's width
ok dlg@

date 2019-02-09T04:50:35Z
author mlarkin
files src/sys/arch/amd64/amd64/vmm.c log diff annotate
message vmm(4): add a debug printf when processing vmxon operations

date 2019-02-09T04:54:11Z
author guenther
files src/sys/sys/types.h log diff annotate
message major() and minor() are documented as returning unsigned, so do so

ok deraadt@

date 2019-02-10T11:56:26Z
author kettenis
files src/sys/dev/fdt/sximmc.c log diff annotate
message Handle "broken-cd" as "non-removable" for now. This will generate some
error messages if a card is absent from the slot, but other workarounds
are much more complicated.

From SASANO Takayoshi.

date 2019-02-10T12:25:28Z
author kettenis
files src/sys/dev/fdt/sxipio.c log diff annotate
src/sys/dev/fdt/sxipio_pins.h log diff annotate
message Add Allwinner V3s support. Also update some Allwinner A80 pin names to
what is used by more recent Linux kernels.

Partly from SASANO Takayoshi.

date 2019-02-10T16:42:35Z
author phessler
files src/sys/net/if_pfsync.c log diff annotate
src/sys/scsi/mpath.c log diff annotate
src/sys/uvm/uvm_map.c log diff annotate
message "non-existant" is one of those words that don't exist, so use "non-existent"
instead

From Pamela Mosiejczuk, many thanks!
OK phessler@ deraadt@

date 2019-02-10T20:02:37Z
author tedu
files src/sys/arch/arm/arm/pmap7.c log diff annotate
src/sys/kern/subr_pool.c log diff annotate
src/sys/kern/uipc_mbuf.c log diff annotate
src/sys/sys/pool.h log diff annotate
message make it possible to reduce kmem pressure by letting some pools use a more
accomodating allocator. an interrupt safe pool may also be used in process
context, as indicated by waitok flags. thanks to the garbage collector, we
can always free pages in process context. the only complication is where
to put the pages. solve this by saving the allocation flags in the pool
page header so the free function can examine them.
not actually used in this diff. (coming soon.)
arm testing and compile fixes from phessler

date 2019-02-10T20:05:04Z
author tedu
files src/sys/kern/subr_pool.c log diff annotate
message if waitok flag is set, have the interrupt multipage allocator redirect
to the not interrupt allocator.

date 2019-02-10T20:07:33Z
author tedu
files src/sys/arch/arm64/arm64/pmap.c log diff annotate
message missed a file. add flags to the pool page free function.

date 2019-02-10T22:32:26Z
author dlg
files src/sys/net/route.c log diff annotate
src/sys/netinet/in.c log diff annotate
src/sys/netinet/ip_mroute.c log diff annotate
src/sys/netinet6/in6.c log diff annotate
src/sys/netinet6/in6_ifattach.c log diff annotate
src/sys/netinet6/ip6_mroute.c log diff annotate
message remove the implict RTF_MPATH flag that rt_ifa_add() sets on new routes.

MPLS interfaces (ab)use rt_ifa_add for adding the local MPLS label
that they listen on for incoming packets, while every other use of
rt_ifa_add is for adding addresses on local interfaces. MPLS does
this cos the addresses involved are in basically the same shape as
ones used for setting up local addresses.

It is appropriate for interfaces to want RTF_MPATH on local addresses,
but in the MPLS case it means you can have multiple local things
listening on the same label, which doesn't actually work. mpe in
particular keeps track of in use labels to it can handle collisions,
however, mpw does not. It is currently possible to have multiple
mpw interfaces on the same local label, and sharing the same label
as mpe or possible normal forwarding labels.

Moving the RTF_MPATH flag out of rt_ifa_add means all the callers
that still want it need to pass it themselves. The mpe and mpw
callers are left alone without the flag, and will now get EEXIST
from rt_ifa_add when a label is already in use.

ok (and a huge amount of patience and help) mpi@
claudio@ is ok with the idea, but saw a much much earlier solution
to the problem

date 2019-02-10T22:34:01Z
author dlg
files src/sys/net/if_mpe.c log diff annotate
message get rid of the global list of mpe interfaces, it's not needed anymore

mpe would try to detect label collisions itself, but wasn't
coordinating with mpw or other labels, making it's solution incomplete.
this also means i won't need extra locking if i try to make the
ioctl paths mpsafe.

date 2019-02-10T22:36:34Z
author dlg
files src/sys/net/if_mpe.c log diff annotate
message whitespace tweak, no functional change

date 2019-02-10T22:45:57Z
author tedu
files src/sys/kern/subr_pool.c log diff annotate
message revert revert revert. there are many other archs that use custom allocs.

date 2019-02-10T22:45:58Z
author tedu
files src/sys/arch/arm/arm/pmap7.c log diff annotate
src/sys/arch/arm64/arm64/pmap.c log diff annotate
src/sys/kern/uipc_mbuf.c log diff annotate
src/sys/sys/pool.h log diff annotate
message revert revert revert. there are many other archs that use custom allocs.

date 2019-02-10T22:58:05Z
author dlg
files src/sys/net/if_mpw.c log diff annotate
message assign the m_prepend result to the right variable.

date 2019-02-11T00:11:24Z
author dlg
files src/sys/net/if_mpe.c log diff annotate
src/sys/net/if_mpw.c log diff annotate
message add M_CANFAIL to malloc, and return ENOMEM if allocating an interface
fails.

date 2019-02-11T00:25:33Z
author bluhm
files src/sys/sys/mbuf.h log diff annotate
message In ddb add description for show mbuf flags bit SYNCOOKIE_RECREATED
of struct pkthdr_pf.
from Jan Klemkow

date 2019-02-12T21:34:11Z
author kettenis
files src/sys/dev/fdt/sxiccmu.c log diff annotate
src/sys/dev/fdt/sxiccmu_clocks.h log diff annotate
message Add Allwinner V3s support. From SASANO Takayoshi.

date 2019-02-13T11:55:21Z
author martijn
files src/sys/kern/uipc_usrreq.c log diff annotate
message Allow SO_PEERCRED to be called on sockets created with socketpair.

OK claudio@ and jca@

date 2019-02-13T23:47:42Z
author dlg
files src/sys/net/if_mpe.c log diff annotate
src/sys/net/if_mpw.c log diff annotate
src/sys/net/route.c log diff annotate
src/sys/net/route.h log diff annotate
message change rt_ifa_add and rt_ifa_del so they take an rdomain argument.

this allows mpls interfaces (mpe, mpw) to pass the rdomain they
wish the local label to be in, rather than have it implicitly forced
to 0 by these functions. right now they'll pass 0, but it will soon
be possible to have them rx packets in other rdomains.

previously the functions used ifp->if_rdomain for the rdomain.
everything other than mpls still passes ifp->if_rdomain.

ok mpi@

date 2019-02-13T23:47:43Z
author dlg
files src/sys/netinet/in.c log diff annotate
src/sys/netinet/ip_mroute.c log diff annotate
src/sys/netinet6/in6.c log diff annotate
src/sys/netinet6/in6_ifattach.c log diff annotate
src/sys/netinet6/ip6_mroute.c log diff annotate
message change rt_ifa_add and rt_ifa_del so they take an rdomain argument.

this allows mpls interfaces (mpe, mpw) to pass the rdomain they
wish the local label to be in, rather than have it implicitly forced
to 0 by these functions. right now they'll pass 0, but it will soon
be possible to have them rx packets in other rdomains.

previously the functions used ifp->if_rdomain for the rdomain.
everything other than mpls still passes ifp->if_rdomain.

ok mpi@

date 2019-02-13T23:55:56Z
author dlg
files src/sys/net/if_mpe.c log diff annotate
message don't confuse the interface rdomain with the one the local label is in.

SIOCSIFRDOMAIN is about the routes on top of an mpe interface. the
rdomain mpls operates in is independent of that, and currently
restricted to rdomain 0.