2021-03-02 08:24:45 +00:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
kernel: 5.4: import wireguard backport
Rather than using the clunky, old, slower wireguard-linux-compat out of
tree module, this commit does a patch-by-patch backport of upstream's
wireguard to 5.4. This specific backport is in widespread use, being
part of SUSE's enterprise kernel, Oracle's enterprise kernel, Google's
Android kernel, Gentoo's distro kernel, and probably more I've forgotten
about. It's definately the "more proper" way of adding wireguard to a
kernel than the ugly compat.h hell of the wireguard-linux-compat repo.
And most importantly for OpenWRT, it allows using the same module
configuration code for 5.10 as for 5.4, with no need for bifurcation.
These patches are from the backport tree which is maintained in the
open here: https://git.zx2c4.com/wireguard-linux/log/?h=backport-5.4.y
I'll be sending PRs to update this as needed.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-02-19 13:29:04 +00:00
|
|
|
From: "Jason A. Donenfeld" <Jason@zx2c4.com>
|
|
|
|
Date: Thu, 2 Jan 2020 17:47:50 +0100
|
2021-03-02 08:24:45 +00:00
|
|
|
Subject: [PATCH] wireguard: queueing: do not account for pfmemalloc when
|
|
|
|
clearing skb header
|
kernel: 5.4: import wireguard backport
Rather than using the clunky, old, slower wireguard-linux-compat out of
tree module, this commit does a patch-by-patch backport of upstream's
wireguard to 5.4. This specific backport is in widespread use, being
part of SUSE's enterprise kernel, Oracle's enterprise kernel, Google's
Android kernel, Gentoo's distro kernel, and probably more I've forgotten
about. It's definately the "more proper" way of adding wireguard to a
kernel than the ugly compat.h hell of the wireguard-linux-compat repo.
And most importantly for OpenWRT, it allows using the same module
configuration code for 5.10 as for 5.4, with no need for bifurcation.
These patches are from the backport tree which is maintained in the
open here: https://git.zx2c4.com/wireguard-linux/log/?h=backport-5.4.y
I'll be sending PRs to update this as needed.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-02-19 13:29:04 +00:00
|
|
|
|
|
|
|
commit 04d2ea92a18417619182cbb79063f154892b0150 upstream.
|
|
|
|
|
|
|
|
Before 8b7008620b84 ("net: Don't copy pfmemalloc flag in __copy_skb_
|
|
|
|
header()"), the pfmemalloc flag used to be between headers_start and
|
|
|
|
headers_end, which is a region we clear when preparing the packet for
|
|
|
|
encryption/decryption. This is a parameter we certainly want to
|
|
|
|
preserve, which is why 8b7008620b84 moved it out of there. The code here
|
|
|
|
was written in a world before 8b7008620b84, though, where we had to
|
|
|
|
manually account for it. This commit brings things up to speed.
|
|
|
|
|
|
|
|
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.h | 3 ---
|
|
|
|
1 file changed, 3 deletions(-)
|
|
|
|
|
|
|
|
--- a/drivers/net/wireguard/queueing.h
|
|
|
|
+++ b/drivers/net/wireguard/queueing.h
|
|
|
|
@@ -83,13 +83,10 @@ static inline __be16 wg_skb_examine_untr
|
|
|
|
|
|
|
|
static inline void wg_reset_packet(struct sk_buff *skb)
|
|
|
|
{
|
|
|
|
- const int pfmemalloc = skb->pfmemalloc;
|
|
|
|
-
|
|
|
|
skb_scrub_packet(skb, true);
|
|
|
|
memset(&skb->headers_start, 0,
|
|
|
|
offsetof(struct sk_buff, headers_end) -
|
|
|
|
offsetof(struct sk_buff, headers_start));
|
|
|
|
- skb->pfmemalloc = pfmemalloc;
|
|
|
|
skb->queue_mapping = 0;
|
|
|
|
skb->nohdr = 0;
|
|
|
|
skb->peeked = 0;
|