diff options
author | Yuanjun Gong <ruc_gongyuanjun@163.com> | 2023-07-20 17:42:19 +0300 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2023-07-25 01:43:02 +0300 |
commit | 69a184f7a372aac588babfb0bd681aaed9779f5b (patch) | |
tree | 9ae3a308227926a1bae0c2c490df57fb232d06fc /drivers/net/ethernet/atheros/atl1e/atl1e_main.c | |
parent | ed96824b71ed67664390890441b229423a25317f (diff) | |
download | linux-69a184f7a372aac588babfb0bd681aaed9779f5b.tar.xz |
ethernet: atheros: fix return value check in atl1e_tso_csum()
in atl1e_tso_csum, it should check the return value of pskb_trim(),
and return an error code if an unexpected value is returned
by pskb_trim().
Fixes: a6a5325239c2 ("atl1e: Atheros L1E Gigabit Ethernet driver")
Signed-off-by: Yuanjun Gong <ruc_gongyuanjun@163.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Link: https://lore.kernel.org/r/20230720144219.39285-1-ruc_gongyuanjun@163.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/ethernet/atheros/atl1e/atl1e_main.c')
-rw-r--r-- | drivers/net/ethernet/atheros/atl1e/atl1e_main.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/ethernet/atheros/atl1e/atl1e_main.c b/drivers/net/ethernet/atheros/atl1e/atl1e_main.c index 5db0f3495a32..5935be190b9e 100644 --- a/drivers/net/ethernet/atheros/atl1e/atl1e_main.c +++ b/drivers/net/ethernet/atheros/atl1e/atl1e_main.c @@ -1641,8 +1641,11 @@ static int atl1e_tso_csum(struct atl1e_adapter *adapter, real_len = (((unsigned char *)ip_hdr(skb) - skb->data) + ntohs(ip_hdr(skb)->tot_len)); - if (real_len < skb->len) - pskb_trim(skb, real_len); + if (real_len < skb->len) { + err = pskb_trim(skb, real_len); + if (err) + return err; + } hdr_len = skb_tcp_all_headers(skb); if (unlikely(skb->len == hdr_len)) { |