]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
net: atlantic: fix potential error handling
authorPavel Belous <pbelous@marvell.com>
Fri, 14 Feb 2020 15:44:56 +0000 (18:44 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Mar 2020 15:45:20 +0000 (16:45 +0100)
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/aquantia/atlantic/aq_nic.c

index 263beea1859c14080b02d17deaae62407a8ca09f..e95f6a6bef733d1f944af19b852e18971795c21c 100644 (file)
@@ -533,8 +533,10 @@ unsigned int aq_nic_map_skb(struct aq_nic_s *self, struct sk_buff *skb,
                                     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;