created | 2020-04-25T17:49:23Z |
---|---|
begin | 2020-04-12T00:00:00Z |
end | 2020-04-13T00:00:00Z |
path | src/sys |
commits | 11 |
date | 2020-04-12T06:48:46Z | |||
---|---|---|---|---|
author | visa | |||
files | src/sys/net/if_bridge.c | log | diff | annotate |
message |
ifpromisc() requires NET_LOCK(), so acquire the lock when changing promiscuous mode from bridge(4). This fixes a regression of r1.332 of sys/net/if_bridge.c. splassert with bridge(4) and vlan(4) reported by David Hill OK mpi@, dlg@ |
date | 2020-04-12T06:56:37Z | |||
---|---|---|---|---|
author | dlg | |||
files | src/sys/net/if_tpmr.c | log | diff | annotate |
message |
take NET_LOCK in tpmr_clone_destroy() before calling tpmr_p_dtor() tpmr_p_dtor() calls ifpromisc(), and ifpromisc() callers need to be holding NET_LOCK to make changes to if_flags and if_pcount, and before calling the interfaces ioctl to apply the flag change. found by hrvoje popovski who was testing tpmr with vlan interfaces. vlan(4) asserts that the net lock is held in it's ioctl path, which started this whole bug hunt. ok visa@ (who came up with a similar diff, which hrvoje tested) |
date | 2020-04-12T06:59:54Z | |||
---|---|---|---|---|
author | dlg | |||
files | src/sys/net/if_aggr.c | log | diff | annotate |
message |
take NET_LOCK in aggr_clone_destroy() before calling aggr_p_dtor() aggr_p_dtor() calls ifpromisc(), and ifpromisc() callers need to be holding NET_LOCK to make changes to if_flags and if_pcount, and before calling the interfaces ioctl to apply the flag change. i found this while reading code with my eyes, and was able to trigger the NET_ASSERT_LOCKED in the vlan_ioctl path. ok visa@ |
date | 2020-04-12T07:02:43Z | |||
---|---|---|---|---|
author | dlg | |||
files | src/sys/net/if_var.h | log | diff | annotate |
message |
say if_pcount needs NET_LOCK instead of the kernel lock. if_pcount is only touched in ifpromisc(), and ifpromisc() needs NET_LOCK anyway because it also modifies if_flags. suggested by mpi@ ok visa@ |
date | 2020-04-12T07:04:03Z | |||
---|---|---|---|---|
author | dlg | |||
files | src/sys/net/if.c | log | diff | annotate |
message |
make ifpromisc assert that the caller is holding the NET_LOCK. it needs NET_LOCK because it modifies if_flags and if_pcount. ok visa@ |
date | 2020-04-12T07:20:33Z | |||
---|---|---|---|---|
author | visa | |||
files | src/sys/sys/smr.h | log | diff | annotate |
message | Mention tail queue in comments. |
date | 2020-04-12T09:21:19Z | |||
---|---|---|---|---|
author | kettenis | |||
files | src/sys/arch/amd64/amd64/acpi_machdep.c | log | diff | annotate |
src/sys/arch/arm64/arm64/acpi_machdep.c | log | diff | annotate | |
src/sys/arch/i386/i386/acpi_machdep.c | log | diff | annotate | |
src/sys/dev/acpi/acpi.c | log | diff | annotate | |
src/sys/dev/acpi/acpivar.h | log | diff | annotate | |
message |
Add support for the _CCA method. This method indicates whether DMA is cache-coherent or not. To implement this, acpi(4) gets two bus_dma tags and passes the appropriate one when attaching devices based on _CCA. On i386/amd64, where for all practical purpose DMA is always cache-coherent, the two tags are the same. But on arm64 they are distinct. ok patrick@ |
date | 2020-04-12T11:56:52Z | |||
---|---|---|---|---|
author | mpi | |||
files | src/sys/net/if_gre.c | log | diff | annotate |
src/sys/net/if_pfsync.c | log | diff | annotate | |
src/sys/net/if_tun.c | log | diff | annotate | |
src/sys/net/if_vxlan.c | log | diff | annotate | |
src/sys/net/pf_ioctl.c | log | diff | annotate | |
src/sys/netinet/ip_input.c | log | diff | annotate | |
message |
Stop processing packets under non-exclusive (read) netlock. Prevent concurrency in the socket layer which is not ready for that. Two recent data corruptions in pfsync(4) and the socket layer pointed out that, at least, tun(4) was incorrectly using NET_RUNLOCK(). Until we find a way in software to avoid future mistakes and to make sure that only the softnet thread and some ioctls are safe to use a read version of the lock, put everything back to the exclusive version. ok stsp@, visa@ |
date | 2020-04-12T11:56:53Z | |||
---|---|---|---|---|
author | mpi | |||
files | src/sys/netinet6/ip6_input.c | log | diff | annotate |
message |
Stop processing packets under non-exclusive (read) netlock. Prevent concurrency in the socket layer which is not ready for that. Two recent data corruptions in pfsync(4) and the socket layer pointed out that, at least, tun(4) was incorrectly using NET_RUNLOCK(). Until we find a way in software to avoid future mistakes and to make sure that only the softnet thread and some ioctls are safe to use a read version of the lock, put everything back to the exclusive version. ok stsp@, visa@ |
date | 2020-04-12T16:15:18Z | |||
---|---|---|---|---|
author | anton | |||
files | src/sys/kern/uipc_socket.c | log | diff | annotate |
message |
In sosplice(), temporarily release the socket lock before calling FRELE() as the last reference could be dropped which in turn will cause soclose() to be called where the socket lock is unconditionally acquired. Note that this is only a problem for sockets protected by the non-recursive NET_LOCK() right now. ok mpi@ visa@ Reported-by: [email protected] |
date | 2020-04-12T17:47:25Z | |||
---|---|---|---|---|
author | jca | |||
files | src/sys/dev/pci/drm/include/linux/seqlock.h | log | diff | annotate |
src/sys/dev/pci/drm/include/linux/spinlock.h | log | diff | annotate | |
message |
Turn those spinlock and seqlock inline functions to macros They're macros on Linux because they save state in their flags parameter. Turning them to static inline functions creates a lot of -Wuninitialized warnings, so just use macros which set their flags argument. ok kettenis@ |