examples/bond: fix build with clang
[dpdk.git] / lib / librte_pmd_ring / rte_eth_ring.c
index a23e933..6832f01 100644 (file)
@@ -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;
 }