diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2016-11-06 19:50:48 +0100 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2016-11-06 19:50:48 +0100 |
commit | aad9d7bccd158836918df742896272dad6af2395 (patch) | |
tree | 9b648a50cc1dd8cf17f9507b09838fedca07ebaa | |
parent | debug: support dynamic debug on skb addr (diff) | |
download | wireguard-monolithic-historical-aad9d7bccd158836918df742896272dad6af2395.tar.xz wireguard-monolithic-historical-aad9d7bccd158836918df742896272dad6af2395.zip |
data: only uses kmem_cache for parallism
-rw-r--r-- | src/data.c | 2 | ||||
-rw-r--r-- | src/main.c | 6 | ||||
-rw-r--r-- | src/packets.h | 3 |
3 files changed, 11 insertions, 0 deletions
@@ -42,6 +42,7 @@ struct decryption_ctx { int ret; }; +#ifdef CONFIG_WIREGUARD_PARALLEL static struct kmem_cache *encryption_ctx_cache; static struct kmem_cache *decryption_ctx_cache; @@ -64,6 +65,7 @@ void packet_deinit_data_caches(void) kmem_cache_destroy(encryption_ctx_cache); kmem_cache_destroy(decryption_ctx_cache); } +#endif /* This is RFC6479, a replay detection bitmap algorithm that avoids bitshifts */ static inline bool counter_validate(union noise_counter *counter, u64 their_counter) @@ -29,13 +29,17 @@ static int __init mod_init(void) chacha20poly1305_init(); noise_init(); +#ifdef CONFIG_WIREGUARD_PARALLEL ret = packet_init_data_caches(); if (ret < 0) return ret; +#endif ret = device_init(); if (ret < 0) { +#ifdef CONFIG_WIREGUARD_PARALLEL packet_deinit_data_caches(); +#endif return ret; } @@ -47,7 +51,9 @@ static int __init mod_init(void) static void __exit mod_exit(void) { device_uninit(); +#ifdef CONFIG_WIREGUARD_PARALLEL packet_deinit_data_caches(); +#endif pr_debug("WireGuard has been unloaded\n"); } diff --git a/src/packets.h b/src/packets.h index c9d82d1..03ba891 100644 --- a/src/packets.h +++ b/src/packets.h @@ -41,8 +41,11 @@ void packet_send_queued_handshakes(struct work_struct *work); /* data.c */ int packet_create_data(struct sk_buff_head *queue, struct wireguard_peer *peer, void(*callback)(struct sk_buff_head *, struct wireguard_peer *)); void packet_consume_data(struct sk_buff *skb, size_t offset, struct wireguard_device *wg, void(*callback)(struct sk_buff *, struct wireguard_peer *, struct sockaddr_storage *, bool used_new_key, int err)); + +#ifdef CONFIG_WIREGUARD_PARALLEL int packet_init_data_caches(void); void packet_deinit_data_caches(void); +#endif #define DATA_PACKET_HEAD_ROOM ALIGN(sizeof(struct message_data) + SKB_HEADER_LEN, 4) |