From: Greg Kroah-Hartman Date: Wed, 26 Aug 2020 10:16:05 +0000 (+0200) Subject: drop net-xdp-pull-ethernet-header-off-packet-after-computing-skb-protocol.patch X-Git-Tag: v5.7.19~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a6318bfeab28d14aa337a23e29eaeda6dcd407ab;p=thirdparty%2Fkernel%2Fstable-queue.git drop net-xdp-pull-ethernet-header-off-packet-after-computing-skb-protocol.patch --- diff --git a/queue-5.7/net-xdp-pull-ethernet-header-off-packet-after-computing-skb-protocol.patch b/queue-5.7/net-xdp-pull-ethernet-header-off-packet-after-computing-skb-protocol.patch deleted file mode 100644 index 59ab40d4adb..00000000000 --- a/queue-5.7/net-xdp-pull-ethernet-header-off-packet-after-computing-skb-protocol.patch +++ /dev/null @@ -1,39 +0,0 @@ -From foo@baz Wed Aug 26 11:53:06 AM CEST 2020 -From: "Jason A. Donenfeld" -Date: Sat, 15 Aug 2020 09:29:30 +0200 -Subject: net: xdp: pull ethernet header off packet after computing skb->protocol - -From: "Jason A. Donenfeld" - -[ Upstream commit f8414a8d886b613b90d9fdf7cda6feea313b1069 ] - -When an XDP program changes the ethernet header protocol field, -eth_type_trans is used to recalculate skb->protocol. In order for -eth_type_trans to work correctly, the ethernet header must actually be -part of the skb data segment, so the code first pushes that onto the -head of the skb. However, it subsequently forgets to pull it back off, -making the behavior of the passed-on packet inconsistent between the -protocol modifying case and the static protocol case. This patch fixes -the issue by simply pulling the ethernet header back off of the skb -head. - -Fixes: 297249569932 ("net: fix generic XDP to handle if eth header was mangled") -Cc: Jesper Dangaard Brouer -Cc: David S. Miller -Signed-off-by: Jason A. Donenfeld -Signed-off-by: David S. Miller -Signed-off-by: Greg Kroah-Hartman ---- - net/core/dev.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/net/core/dev.c -+++ b/net/core/dev.c -@@ -4586,6 +4586,7 @@ static u32 netif_receive_generic_xdp(str - (orig_bcast != is_multicast_ether_addr_64bits(eth->h_dest))) { - __skb_push(skb, ETH_HLEN); - skb->protocol = eth_type_trans(skb, skb->dev); -+ __skb_pull(skb, ETH_HLEN); - } - - switch (act) { diff --git a/queue-5.7/series b/queue-5.7/series index 7e8717b9c64..3eff90c3ce0 100644 --- a/queue-5.7/series +++ b/queue-5.7/series @@ -5,7 +5,6 @@ net-qrtr-fix-usage-of-idr-in-port-assignment-to-socket.patch net-sched-act_ct-fix-skb-double-free-in-tcf_ct_handle_fragments-error-flow.patch net-sctp-fix-negotiation-of-the-number-of-data-streams.patch net-smc-prevent-kernel-infoleak-in-__smc_diag_dump.patch -net-xdp-pull-ethernet-header-off-packet-after-computing-skb-protocol.patch tipc-call-rcu_read_lock-in-tipc_aead_encrypt_done.patch tipc-fix-uninit-skb-data-in-tipc_nl_compat_dumpit.patch net-ena-make-missed_tx-stat-incremental.patch diff --git a/queue-5.8/net-xdp-pull-ethernet-header-off-packet-after-computing-skb-protocol.patch b/queue-5.8/net-xdp-pull-ethernet-header-off-packet-after-computing-skb-protocol.patch deleted file mode 100644 index bea53c68e9c..00000000000 --- a/queue-5.8/net-xdp-pull-ethernet-header-off-packet-after-computing-skb-protocol.patch +++ /dev/null @@ -1,39 +0,0 @@ -From foo@baz Wed Aug 26 11:58:24 AM CEST 2020 -From: "Jason A. Donenfeld" -Date: Sat, 15 Aug 2020 09:29:30 +0200 -Subject: net: xdp: pull ethernet header off packet after computing skb->protocol - -From: "Jason A. Donenfeld" - -[ Upstream commit f8414a8d886b613b90d9fdf7cda6feea313b1069 ] - -When an XDP program changes the ethernet header protocol field, -eth_type_trans is used to recalculate skb->protocol. In order for -eth_type_trans to work correctly, the ethernet header must actually be -part of the skb data segment, so the code first pushes that onto the -head of the skb. However, it subsequently forgets to pull it back off, -making the behavior of the passed-on packet inconsistent between the -protocol modifying case and the static protocol case. This patch fixes -the issue by simply pulling the ethernet header back off of the skb -head. - -Fixes: 297249569932 ("net: fix generic XDP to handle if eth header was mangled") -Cc: Jesper Dangaard Brouer -Cc: David S. Miller -Signed-off-by: Jason A. Donenfeld -Signed-off-by: David S. Miller -Signed-off-by: Greg Kroah-Hartman ---- - net/core/dev.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/net/core/dev.c -+++ b/net/core/dev.c -@@ -4671,6 +4671,7 @@ static u32 netif_receive_generic_xdp(str - (orig_bcast != is_multicast_ether_addr_64bits(eth->h_dest))) { - __skb_push(skb, ETH_HLEN); - skb->protocol = eth_type_trans(skb, skb->dev); -+ __skb_pull(skb, ETH_HLEN); - } - - switch (act) { diff --git a/queue-5.8/series b/queue-5.8/series index b47ed8feecd..703f0798990 100644 --- a/queue-5.8/series +++ b/queue-5.8/series @@ -5,7 +5,6 @@ net-qrtr-fix-usage-of-idr-in-port-assignment-to-socket.patch net-sched-act_ct-fix-skb-double-free-in-tcf_ct_handle_fragments-error-flow.patch net-sctp-fix-negotiation-of-the-number-of-data-streams.patch net-smc-prevent-kernel-infoleak-in-__smc_diag_dump.patch -net-xdp-pull-ethernet-header-off-packet-after-computing-skb-protocol.patch tipc-call-rcu_read_lock-in-tipc_aead_encrypt_done.patch tipc-fix-uninit-skb-data-in-tipc_nl_compat_dumpit.patch net-ena-make-missed_tx-stat-incremental.patch