e601766bd963add2d372b6c142d1f58e3aa35eb2
[openwrt/staging/wigyori.git] / target / linux / layerscape / patches-5.4 / 701-net-0010-dpaa_eth-ls1043a-errata-check-if-the-skb-is-linear-a.patch
1 From 62fbf7ebdc28867ae613c3be9c62b30bc36edb1d Mon Sep 17 00:00:00 2001
2 From: Camelia Groza <camelia.groza@nxp.com>
3 Date: Mon, 27 Feb 2017 17:35:24 +0200
4 Subject: [PATCH] dpaa_eth: ls1043a errata: check if the skb is linear after 4k
5 splitting
6
7 Signed-off-by: Camelia Groza <camelia.groza@nxp.com>
8 ---
9 drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_sg.c | 4 +++-
10 1 file changed, 3 insertions(+), 1 deletion(-)
11
12 --- a/drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_sg.c
13 +++ b/drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_sg.c
14 @@ -993,7 +993,7 @@ int __hot dpa_tx_extended(struct sk_buff
15 struct dpa_percpu_priv_s *percpu_priv;
16 struct rtnl_link_stats64 *percpu_stats;
17 int err = 0;
18 - const bool nonlinear = skb_is_nonlinear(skb);
19 + bool nonlinear;
20 int *countptr, offset = 0;
21
22 priv = netdev_priv(net_dev);
23 @@ -1023,6 +1023,8 @@ int __hot dpa_tx_extended(struct sk_buff
24 }
25 #endif
26
27 + nonlinear = skb_is_nonlinear(skb);
28 +
29 /* MAX_SKB_FRAGS is larger than our DPA_SGT_MAX_ENTRIES; make sure
30 * we don't feed FMan with more fragments than it supports.
31 * Btw, we're using the first sgt entry to store the linear part of