X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fpcap%2Frte_eth_pcap.c;h=28a5027315e2f932beb0d701a86cdaae07782311;hb=76fd789cc7dddbaa2c08065b7c3ca915b5c07e7c;hp=38b1fe2f77831cbe9e0c66dedd8439fd822bcc8a;hpb=9d8d3032da726fd46d511dc5c54f607b4dab3b22;p=dpdk.git diff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c index 38b1fe2f77..28a5027315 100644 --- a/drivers/net/pcap/rte_eth_pcap.c +++ b/drivers/net/pcap/rte_eth_pcap.c @@ -682,9 +682,11 @@ eth_dev_stop(struct rte_eth_dev *dev) /* Special iface case. Single pcap is open and shared between tx/rx. */ if (internals->single_iface) { queue_missed_stat_on_stop_update(dev, 0); - pcap_close(pp->tx_pcap[0]); - pp->tx_pcap[0] = NULL; - pp->rx_pcap[0] = NULL; + if (pp->tx_pcap[0] != NULL) { + pcap_close(pp->tx_pcap[0]); + pp->tx_pcap[0] = NULL; + pp->rx_pcap[0] = NULL; + } goto status_down; } @@ -821,6 +823,8 @@ eth_dev_close(struct rte_eth_dev *dev) PMD_LOG(INFO, "Closing pcap ethdev on NUMA socket %d", rte_socket_id()); + eth_dev_stop(dev); + rte_free(dev->process_private); if (rte_eal_process_type() != RTE_PROC_PRIMARY) @@ -893,7 +897,7 @@ eth_rx_queue_setup(struct rte_eth_dev *dev, pcap_pkt_count = count_packets_in_pcap(pcap, pcap_q); - snprintf(ring_name, sizeof(ring_name), "PCAP_RING%" PRIu16, + snprintf(ring_name, sizeof(ring_name), "PCAP_RING%" PRIu32, ring_number); pcap_q->pkts = rte_ring_create(ring_name,