| b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame] | 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 |