opnsense-src/sys
Alexander V. Chernikov 151ec796a2 Fix the design problem with delayed algorithm sync.
Currently, if the immutable algorithm like bsearch or radix_lockless
 receives rtable update notification, it schedules algorithm rebuild.
This rebuild is executed by the callout after ~50 milliseconds.

It is possible that a script adding an interface address and than route
 with the gateway bound to that address will fail. It can happen due
 to the fact that fib is not updated by the time the route addition
 request arrives.

Fix this by allowing synchronous algorithm rebuilds based on certain
 conditions. By default, these conditions assume:
1) less than net.route.algo.fib_sync_limit=100 routes
2) routes without gateway.

* Move algo instance build entirely under rib WLOCK.
 Rib lock is only used for control plane (except radix algo, but there
  are no rebuilds).
* Add rib_walk_ext_locked() function to allow RIB iteration with
 rib lock already held.
* Fix rare potential callout use-after-free for fds by binding fd
 callout to the relevant rib rmlock. In that case, callout_stop()
 under rib WLOCK guarantees no callout will be executed afterwards.

MFC after:	3 days
2021-01-30 23:25:57 +00:00
..
amd64 amd64: retire sse2_pagezero 2021-01-30 00:17:15 +00:00
arm Remove obsolete code gated on _ARM_ARCH_* 2021-01-28 10:41:45 +00:00
arm64 Enable KERN_TLS by default in ARM64 GENERIC 2021-01-28 20:48:37 +00:00
bsm Add aio_writev and aio_readv 2021-01-02 19:57:58 -07:00
cam Exclude reserved iSCSI Target Transfer Tag. 2021-01-24 13:58:29 -05:00
cddl riscv: fix kernel build 2021-01-15 11:57:04 -04:00
compat LinuxKPI: add module dependency on firmware(9) 2021-01-30 17:50:26 +00:00
conf newvers: tweak uname to be more useful 2021-01-28 17:44:56 -07:00
contrib acpica: Import ACPICA 20210105. 2021-01-29 20:53:07 -05:00
crypto armv8crypto: add AES-GCM support 2021-01-21 21:41:27 -08:00
ddb ddb: add ability to print user registers 2021-01-08 14:53:06 -04:00
dev Catch up with 6edfd179c8: mechanically rename IFCAP_NOMAP to IFCAP_MEXTPG. 2021-01-29 11:46:24 -08:00
dts Remove DTS files for arm boards we don't support 2021-01-27 10:02:01 +00:00
fs tmpfs: implement pathconf(_PC_SYMLINK_MAX) 2021-01-29 09:30:25 +00:00
gdb gdb(4): allow bulk write of registers 2020-12-23 14:37:05 -04:00
geom geom(4): make g_newprovider_event() return if G_P_WITHER is set 2020-12-29 14:29:59 +00:00
gnu Remove the old dts imported tree. 2021-01-15 20:09:55 +01:00
i386 Fix a typo. 2021-01-27 21:52:41 -08:00
isa sc(4) md bits: stop setting sc->kbd entirely 2019-12-30 02:07:55 +00:00
kern Catch up with 6edfd179c8: mechanically rename IFCAP_NOMAP to IFCAP_MEXTPG. 2021-01-29 11:46:24 -08:00
kgssapi State kgssapi dependency on xdr. 2020-09-17 22:29:38 +00:00
libkern Reimplement strlen 2021-01-29 23:48:26 +00:00
mips make maximum interrupt number tunable on ARM, ARM64, MIPS, and RISC-V 2021-01-18 16:36:39 -08:00
modules LinuxKPI: implement devres() framework parts and two examples 2021-01-28 16:32:43 +00:00
net Fix the design problem with delayed algorithm sync. 2021-01-30 23:25:57 +00:00
net80211 net80211: fix a typo 2020-11-04 12:07:33 +00:00
netgraph netgraph/ng_source: Switch queuing framework 2021-01-29 12:34:53 +01:00
netinet Catch up with 6edfd179c8: mechanically rename IFCAP_NOMAP to IFCAP_MEXTPG. 2021-01-29 11:46:24 -08:00
netinet6 Fix unused-function waring when compiling with FIB_ALGO. 2021-01-30 23:25:56 +00:00
netipsec Convert unmapped mbufs before computing checksums in IPsec. 2021-01-19 11:52:00 -08:00
netpfil pf: duplicate frames only once when using dup-to pf rule 2021-01-28 16:46:44 +01:00
netsmb net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
nfs nfs: clean up empty lines in .c and .h files 2020-09-01 21:25:39 +00:00
nfsclient nfs: clean up empty lines in .c and .h files 2020-09-01 21:25:39 +00:00
nfsserver nfs: Mark unused statistics variable as reserved 2020-11-18 04:35:49 +00:00
nlm nlm: clean up empty lines in .c and .h files 2020-09-01 22:14:52 +00:00
ofed Update user access region, UAR, APIs in the core in mlx5core. 2021-01-08 13:33:46 +01:00
opencrypto opencrypto: Add comments describing the new crypto_session layout 2021-01-19 21:32:33 -05:00
powerpc gdb: only return signal values for powerpc's gdb_cpu_signal() 2021-01-22 15:01:49 -04:00
riscv riscv: add SBI system reset extension 2021-01-27 19:19:54 -04:00
rpc nfs-over-tls: handle res.gid.gid_val correctly for memory allocation 2021-01-12 13:59:52 -08:00
security Convert remaining cap_rights_init users to cap_rights_init_one 2021-01-12 13:16:10 +00:00
sys fd: add fget_only_user 2021-01-29 11:23:43 +00:00
teken loader: implement framebuffer console 2021-01-02 21:41:36 +02:00
tests Enable running fib tests inside vnet jail. 2021-01-17 20:32:26 +00:00
tools syscalls.master: Add a new syscall type: RESERVED 2021-01-26 18:27:44 +00:00
ufs Revert 2d4422e799, Eliminate lock order reversal in UFS ffs_unmount(). 2021-01-30 00:03:37 -08:00
vm Rename kern_mmap_req to kern_mmap 2021-01-25 21:50:37 +00:00
x86 stand/multiboot: adjust the protocol between loader and kernel 2021-01-29 15:23:26 +01:00
xdr xdr: clean up empty lines in .c and .h files 2020-09-01 22:13:28 +00:00
xen xen: remove .swp file from public headers 2021-01-11 18:14:11 +01:00
Makefile Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00