aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/701-net-0063-sdk_dpaa-propagate-the-skb-ownership-information.patch
blob: f906dc977149fc841b0521d3f2902623b854a421 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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;
 		}