X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fring%2Frte_eth_ring.c;h=d6115abdd50884030b056e76c5af924aa79afacb;hb=c6ca05823c98346422b110730760ca3c070ff0b7;hp=22c08026882994d2e17a46c911e1e3987eaf509b;hpb=e37bbe212d48a7375a6239478a114829d05692b5;p=dpdk.git diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c index 22c0802688..d6115abdd5 100644 --- a/drivers/net/ring/rte_eth_ring.c +++ b/drivers/net/ring/rte_eth_ring.c @@ -106,10 +106,12 @@ eth_dev_start(struct rte_eth_dev *dev) return 0; } -static void +static int eth_dev_stop(struct rte_eth_dev *dev) { + dev->data->dev_started = 0; dev->data->dev_link.link_status = ETH_LINK_DOWN; + return 0; } static int @@ -235,11 +237,12 @@ eth_dev_close(struct rte_eth_dev *dev) struct pmd_internals *internals = NULL; struct ring_queue *r = NULL; uint16_t i; + int ret; if (rte_eal_process_type() != RTE_PROC_PRIMARY) return 0; - eth_dev_stop(dev); + ret = eth_dev_stop(dev); internals = dev->data->dev_private; if (internals->action == DEV_CREATE) { @@ -256,7 +259,7 @@ eth_dev_close(struct rte_eth_dev *dev) /* mac_addrs must not be freed alone because part of dev_private */ dev->data->mac_addrs = NULL; - return 0; + return ret; } static const struct eth_dev_ops ops = { @@ -358,6 +361,7 @@ do_eth_dev_ring_create(const char *name, data->mac_addrs = &internals->address; data->promiscuous = 1; data->all_multicast = 1; + data->dev_flags |= RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS; eth_dev->dev_ops = &ops; data->numa_node = numa_node;