linux/drivers/net/wireguard
Jason A. Donenfeld 24b70eeeb4 wireguard: use synchronize_net rather than synchronize_rcu
Many of the synchronization points are sometimes called under the rtnl
lock, which means we should use synchronize_net rather than
synchronize_rcu. Under the hood, this expands to using the expedited
flavor of function in the event that rtnl is held, in order to not stall
other concurrent changes.

This fixes some very, very long delays when removing multiple peers at
once, which would cause some operations to take several minutes.

Fixes: e7096c131e ("net: WireGuard secure network tunnel")
Cc: stable@vger.kernel.org
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-06-04 14:25:14 -07:00
..
selftest wireguard: noise: separate receive counter from send counter 2020-05-20 20:55:09 -07:00
allowedips.c
allowedips.h
cookie.c
cookie.h
device.c wireguard: queueing: get rid of per-peer ring buffers 2021-02-23 15:59:34 -08:00
device.h wireguard: queueing: get rid of per-peer ring buffers 2021-02-23 15:59:34 -08:00
main.c
Makefile wireguard: do not use -O3 2021-06-04 14:25:14 -07:00
messages.h wireguard: queueing: preserve flow hash across packet scrubbing 2020-05-20 20:55:09 -07:00
netlink.c netlink: consistently use NLA_POLICY_MIN_LEN() 2020-08-18 12:28:45 -07:00
netlink.h
noise.c wireguard: noise: take lock when removing handshake entry from table 2020-09-09 11:31:37 -07:00
noise.h wireguard: noise: separate receive counter from send counter 2020-05-20 20:55:09 -07:00
peer.c wireguard: use synchronize_net rather than synchronize_rcu 2021-06-04 14:25:14 -07:00
peer.h wireguard: queueing: get rid of per-peer ring buffers 2021-02-23 15:59:34 -08:00
peerlookup.c wireguard: peerlookup: take lock before checking hash in replace operation 2020-09-09 11:31:38 -07:00
peerlookup.h
queueing.c wireguard: queueing: get rid of per-peer ring buffers 2021-02-23 15:59:34 -08:00
queueing.h wireguard: queueing: get rid of per-peer ring buffers 2021-02-23 15:59:34 -08:00
ratelimiter.c
ratelimiter.h
receive.c wireguard: queueing: get rid of per-peer ring buffers 2021-02-23 15:59:34 -08:00
send.c wireguard: queueing: get rid of per-peer ring buffers 2021-02-23 15:59:34 -08:00
socket.c wireguard: use synchronize_net rather than synchronize_rcu 2021-06-04 14:25:14 -07:00
socket.h
timers.c
timers.h
version.h