diff options
Diffstat (limited to 'drivers/net/wireguard/device.c')
-rw-r--r-- | drivers/net/wireguard/device.c | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/drivers/net/wireguard/device.c b/drivers/net/wireguard/device.c index 3ac3f85..9dee3cb 100644 --- a/drivers/net/wireguard/device.c +++ b/drivers/net/wireguard/device.c @@ -232,8 +232,7 @@ static void wg_destruct(struct net_device *dev) destroy_workqueue(wg->handshake_receive_wq); destroy_workqueue(wg->handshake_send_wq); destroy_workqueue(wg->packet_crypt_wq); - wg_packet_queue_free(&wg->decrypt_queue, true); - wg_packet_queue_free(&wg->encrypt_queue, true); + wg_packet_queue_free(&wg->crypt_queue, true); rcu_barrier(); /* Wait for all the peers to be actually freed. */ wg_ratelimiter_uninit(); memzero_explicit(&wg->static_identity, sizeof(wg->static_identity)); @@ -335,19 +334,14 @@ static int wg_newlink(struct net *src_net, struct net_device *dev, if (!wg->packet_crypt_wq) goto err_destroy_handshake_send; - ret = wg_packet_queue_init(&wg->encrypt_queue, wg_packet_encrypt_worker, + ret = wg_packet_queue_init(&wg->crypt_queue, wg_packet_crypt_worker, true, MAX_QUEUED_PACKETS); if (ret < 0) goto err_destroy_packet_crypt; - ret = wg_packet_queue_init(&wg->decrypt_queue, wg_packet_decrypt_worker, - true, MAX_QUEUED_PACKETS); - if (ret < 0) - goto err_free_encrypt_queue; - ret = wg_ratelimiter_init(); if (ret < 0) - goto err_free_decrypt_queue; + goto err_free_crypt_queue; ret = register_netdevice(dev); if (ret < 0) @@ -365,10 +359,8 @@ static int wg_newlink(struct net *src_net, struct net_device *dev, err_uninit_ratelimiter: wg_ratelimiter_uninit(); -err_free_decrypt_queue: - wg_packet_queue_free(&wg->decrypt_queue, true); -err_free_encrypt_queue: - wg_packet_queue_free(&wg->encrypt_queue, true); +err_free_crypt_queue: + wg_packet_queue_free(&wg->crypt_queue, true); err_destroy_packet_crypt: destroy_workqueue(wg->packet_crypt_wq); err_destroy_handshake_send: |