196f3d586f
5.4.102 backported a lot of stuff that our WireGuard backport already did, in addition to other patches we had, so those patches were removed from that part of the series. In the process other patches were refreshed or reworked to account for upstream changes. This commit involved `update_kernel.sh -v -u 5.4`. Cc: John Audia <graysky@archlinux.us> Cc: David Bauer <mail@david-bauer.net> Cc: Petr Štetiar <ynezz@true.cz> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
36 lines
1.3 KiB
Diff
36 lines
1.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: "Jason A. Donenfeld" <Jason@zx2c4.com>
|
|
Date: Wed, 29 Apr 2020 14:59:21 -0600
|
|
Subject: [PATCH] wireguard: queueing: cleanup ptr_ring in error path of
|
|
packet_queue_init
|
|
|
|
commit 130c58606171326c81841a49cc913cd354113dd9 upstream.
|
|
|
|
Prior, if the alloc_percpu of packet_percpu_multicore_worker_alloc
|
|
failed, the previously allocated ptr_ring wouldn't be freed. This commit
|
|
adds the missing call to ptr_ring_cleanup in the error case.
|
|
|
|
Reported-by: Sultan Alsawaf <sultan@kerneltoast.com>
|
|
Fixes: e7096c131e51 ("net: WireGuard secure network tunnel")
|
|
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
|
---
|
|
drivers/net/wireguard/queueing.c | 4 +++-
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
--- a/drivers/net/wireguard/queueing.c
|
|
+++ b/drivers/net/wireguard/queueing.c
|
|
@@ -35,8 +35,10 @@ int wg_packet_queue_init(struct crypt_qu
|
|
if (multicore) {
|
|
queue->worker = wg_packet_percpu_multicore_worker_alloc(
|
|
function, queue);
|
|
- if (!queue->worker)
|
|
+ if (!queue->worker) {
|
|
+ ptr_ring_cleanup(&queue->ring, NULL);
|
|
return -ENOMEM;
|
|
+ }
|
|
} else {
|
|
INIT_WORK(&queue->work, function);
|
|
}
|