aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/peer.c
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2017-09-15 03:45:41 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2017-09-15 16:40:56 +0200
commit9c1a628121770c6d16a500cd2a1886076e4d8e88 (patch)
treececee0da0d16a59285daa7401b7d86f46255b6c3 /src/peer.c
parentdata: reorganize and edit new queuing code (diff)
downloadwireguard-monolithic-historical-9c1a628121770c6d16a500cd2a1886076e4d8e88.tar.xz
wireguard-monolithic-historical-9c1a628121770c6d16a500cd2a1886076e4d8e88.zip
Try out spinlocks for multiconsumer
Diffstat (limited to 'src/peer.c')
-rw-r--r--src/peer.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/peer.c b/src/peer.c
index 62d3259..9d88da7 100644
--- a/src/peer.c
+++ b/src/peer.c
@@ -48,10 +48,13 @@ struct wireguard_peer *peer_create(struct wireguard_device *wg, const u8 public_
list_add_tail(&peer->peer_list, &wg->peer_list);
INIT_LIST_HEAD(&peer->init_queue.list);
INIT_WORK(&peer->init_queue.work, packet_init_worker);
+ spin_lock_init(&peer->init_queue.lock);
INIT_LIST_HEAD(&peer->send_queue.list);
INIT_WORK(&peer->send_queue.work, packet_send_worker);
+ spin_lock_init(&peer->send_queue.lock);
INIT_LIST_HEAD(&peer->receive_queue.list);
INIT_WORK(&peer->receive_queue.work, packet_receive_worker);
+ spin_lock_init(&peer->receive_queue.lock);
spin_lock_init(&peer->init_queue_lock);
pr_debug("%s: Peer %Lu created\n", wg->dev->name, peer->internal_id);
return peer;