| From 31f4303bdc82b6ce564d0c042416cded30410243 Mon Sep 17 00:00:00 2001 |
| From: Pavel Belous <pbelous@marvell.com> |
| Date: Fri, 14 Feb 2020 18:44:56 +0300 |
| Subject: [PATCH] net: atlantic: fix potential error handling |
| |
| commit 380ec5b9af7f0d57dbf6ac067fd9f33cff2fef71 upstream. |
| |
| Code inspection found that in case of mapping error we do return current |
| 'ret' value. But beside error, it is used to count number of descriptors |
| allocated for the packet. In that case map_skb function could return '1'. |
| |
| Changing it to return zero (number of mapped descriptors for skb) |
| |
| Fixes: 018423e90bee ("net: ethernet: aquantia: Add ring support code") |
| Signed-off-by: Pavel Belous <pbelous@marvell.com> |
| Signed-off-by: Igor Russkikh <irusskikh@marvell.com> |
| Signed-off-by: Dmitry Bogdanov <dbogdanov@marvell.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c |
| index 006d92ca7f84..6fa4bbebf5dc 100644 |
| --- a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c |
| +++ b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c |
| @@ -453,8 +453,10 @@ static unsigned int aq_nic_map_skb(struct aq_nic_s *self, |
| dx_buff->len, |
| DMA_TO_DEVICE); |
| |
| - if (unlikely(dma_mapping_error(aq_nic_get_dev(self), dx_buff->pa))) |
| + if (unlikely(dma_mapping_error(aq_nic_get_dev(self), dx_buff->pa))) { |
| + ret = 0; |
| goto exit; |
| + } |
| |
| first = dx_buff; |
| dx_buff->len_pkt = skb->len; |
| -- |
| 2.7.4 |
| |