af_packet: check Tx error
authorJohn W. Linville <linville@tuxdriver.com>
Thu, 27 Aug 2015 17:50:50 +0000 (13:50 -0400)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Tue, 20 Oct 2015 15:59:19 +0000 (17:59 +0200)
Coverity CID # 13200

If sendto fails, the packets will not get transmitted.  Return 0 as
the number of packets transmitted.

Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/af_packet/rte_eth_af_packet.c

index cac26e5..bfde661 100644 (file)
@@ -220,7 +220,8 @@ eth_af_packet_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
        }
 
        /* kick-off transmits */
-       sendto(pkt_q->sockfd, NULL, 0, MSG_DONTWAIT, NULL, 0);
+       if (sendto(pkt_q->sockfd, NULL, 0, MSG_DONTWAIT, NULL, 0) == -1)
+               return 0; /* error sending -- no packets transmitted */
 
        pkt_q->framenum = framenum;
        pkt_q->tx_pkts += num_tx;