aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/701-net-0063-sdk_dpaa-propagate-the-skb-ownership-information.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/layerscape/patches-5.4/701-net-0063-sdk_dpaa-propagate-the-skb-ownership-information.patch')
-rw-r--r--target/linux/layerscape/patches-5.4/701-net-0063-sdk_dpaa-propagate-the-skb-ownership-information.patch33
1 files changed, 33 insertions, 0 deletions
diff --git a/target/linux/layerscape/patches-5.4/701-net-0063-sdk_dpaa-propagate-the-skb-ownership-information.patch b/target/linux/layerscape/patches-5.4/701-net-0063-sdk_dpaa-propagate-the-skb-ownership-information.patch
new file mode 100644
index 0000000000..f906dc9771
--- /dev/null
+++ b/target/linux/layerscape/patches-5.4/701-net-0063-sdk_dpaa-propagate-the-skb-ownership-information.patch
@@ -0,0 +1,33 @@
+From 1a5fe4c83c7ba997a7fc433fcfc4818d48689ecc Mon Sep 17 00:00:00 2001
+From: Madalin Bucur <madalin.bucur@nxp.com>
+Date: Wed, 25 Apr 2018 18:49:32 +0300
+Subject: [PATCH] sdk_dpaa: propagate the skb ownership information
+
+Some skbs on the Tx path may be reallocated by the driver
+due to insufficient headroom, in which case the socket
+value gets lost.
+
+Make sure we propagate the skb ownership information to the
+new skb, since it's needed by the Tx timestamp function in
+the kernel.
+
+Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
+Signed-off-by: Madalin Bucur <madalin.bucur@nxp.com>
+---
+ drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_sg.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_sg.c
++++ b/drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_sg.c
+@@ -1113,6 +1113,11 @@ int __hot dpa_tx_extended(struct sk_buff
+ percpu_stats->tx_errors++;
+ return NETDEV_TX_OK;
+ }
++
++ /* propagate the skb ownership information */
++ if (skb->sk)
++ skb_set_owner_w(skb_new, skb->sk);
++
+ dev_kfree_skb(skb);
+ skb = skb_new;
+ }