Commit 04d2ea92 authored by Jason A. Donenfeld's avatar Jason A. Donenfeld Committed by David S. Miller

wireguard: queueing: do not account for pfmemalloc when clearing skb header

Before 8b700862 ("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 8b700862 moved it out of there. The code here
was written in a world before 8b700862, though, where we had to
manually account for it. This commit brings things up to speed.
Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 9a69a4c8
...@@ -83,13 +83,10 @@ static inline __be16 wg_skb_examine_untrusted_ip_hdr(struct sk_buff *skb) ...@@ -83,13 +83,10 @@ static inline __be16 wg_skb_examine_untrusted_ip_hdr(struct sk_buff *skb)
static inline void wg_reset_packet(struct sk_buff *skb) static inline void wg_reset_packet(struct sk_buff *skb)
{ {
const int pfmemalloc = skb->pfmemalloc;
skb_scrub_packet(skb, true); skb_scrub_packet(skb, true);
memset(&skb->headers_start, 0, memset(&skb->headers_start, 0,
offsetof(struct sk_buff, headers_end) - offsetof(struct sk_buff, headers_end) -
offsetof(struct sk_buff, headers_start)); offsetof(struct sk_buff, headers_start));
skb->pfmemalloc = pfmemalloc;
skb->queue_mapping = 0; skb->queue_mapping = 0;
skb->nohdr = 0; skb->nohdr = 0;
skb->peeked = 0; skb->peeked = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment