OSDN Git Service

wireguard: queueing: do not account for pfmemalloc when clearing skb header
authorJason A. Donenfeld <Jason@zx2c4.com>
Thu, 2 Jan 2020 16:47:50 +0000 (17:47 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sun, 5 Jan 2020 22:08:32 +0000 (14:08 -0800)
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>
drivers/net/wireguard/queueing.h

index e49a464..fecb559 100644 (file)
@@ -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)
 {
-       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;