X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_pmd_ring%2Frte_eth_ring.c;h=6832f01e2495912dde192c21d2f6e0ba77861e13;hb=4ae39dfa69ad9a1ae6174f52c60c187d2843402b;hp=a23e9333ab2a2b9f1e95075db07125f474c7f46e;hpb=f111e60427c376d5bc79b5541bf2dd61a3965cd5;p=dpdk.git diff --git a/lib/librte_pmd_ring/rte_eth_ring.c b/lib/librte_pmd_ring/rte_eth_ring.c index a23e9333ab..6832f01e24 100644 --- a/lib/librte_pmd_ring/rte_eth_ring.c +++ b/lib/librte_pmd_ring/rte_eth_ring.c @@ -234,22 +234,22 @@ static int eth_link_update(struct rte_eth_dev *dev __rte_unused, int wait_to_complete __rte_unused) { return 0; } -static struct eth_dev_ops ops = { - .dev_start = eth_dev_start, - .dev_stop = eth_dev_stop, - .dev_set_link_up = eth_dev_set_link_up, - .dev_set_link_down = eth_dev_set_link_down, - .dev_configure = eth_dev_configure, - .dev_infos_get = eth_dev_info, - .rx_queue_setup = eth_rx_queue_setup, - .tx_queue_setup = eth_tx_queue_setup, - .rx_queue_release = eth_queue_release, - .tx_queue_release = eth_queue_release, - .link_update = eth_link_update, - .stats_get = eth_stats_get, - .stats_reset = eth_stats_reset, - .mac_addr_remove = eth_mac_addr_remove, - .mac_addr_add = eth_mac_addr_add, +static const struct eth_dev_ops ops = { + .dev_start = eth_dev_start, + .dev_stop = eth_dev_stop, + .dev_set_link_up = eth_dev_set_link_up, + .dev_set_link_down = eth_dev_set_link_down, + .dev_configure = eth_dev_configure, + .dev_infos_get = eth_dev_info, + .rx_queue_setup = eth_rx_queue_setup, + .tx_queue_setup = eth_tx_queue_setup, + .rx_queue_release = eth_queue_release, + .tx_queue_release = eth_queue_release, + .link_update = eth_link_update, + .stats_get = eth_stats_get, + .stats_reset = eth_stats_reset, + .mac_addr_remove = eth_mac_addr_remove, + .mac_addr_add = eth_mac_addr_add, }; int @@ -297,7 +297,7 @@ rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[], goto error; /* reserve an ethdev entry */ - eth_dev = rte_eth_dev_allocate(name); + eth_dev = rte_eth_dev_allocate(name, RTE_ETH_DEV_VIRTUAL); if (eth_dev == NULL) goto error; @@ -340,7 +340,7 @@ rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[], eth_dev->driver = eth_drv; eth_dev->dev_ops = &ops; eth_dev->pci_dev = pci_dev; - TAILQ_INIT(&(eth_dev->callbacks)); + TAILQ_INIT(&(eth_dev->link_intr_cbs)); /* finally assign rx and tx ops */ eth_dev->rx_pkt_burst = eth_ring_rx; @@ -349,12 +349,10 @@ rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[], return 0; error: - if (data) - rte_free(data); - if (pci_dev) - rte_free(pci_dev); - if (internals) - rte_free(internals); + rte_free(data); + rte_free(pci_dev); + rte_free(internals); + return -1; } @@ -527,7 +525,7 @@ out: static int rte_pmd_ring_devinit(const char *name, const char *params) { - struct rte_kvargs *kvlist; + struct rte_kvargs *kvlist = NULL; int ret = 0; struct node_action_list *info = NULL; @@ -548,7 +546,7 @@ rte_pmd_ring_devinit(const char *name, const char *params) info = rte_zmalloc("struct node_action_list", sizeof(struct node_action_list) + (sizeof(struct node_action_pair) * ret), 0); if (!info) - goto out; + goto out_free; info->total = ret; info->list = (struct node_action_pair*)(info + 1); @@ -567,8 +565,8 @@ rte_pmd_ring_devinit(const char *name, const char *params) } out_free: + rte_kvargs_free(kvlist); rte_free(info); -out: return ret; }