X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Ffailsafe%2Ffailsafe.c;h=06e859e9fdc2fda872defffa84cac0eee3bedc3f;hb=38f7efaaf5ac7894bfd852b812e6ba3258ceffb4;hp=7f89486d4e043b40ec4488e10816150e3f91f1c4;hpb=f8e9989606e7a9548a25ac10e2daae4c8af230cb;p=dpdk.git diff --git a/drivers/net/failsafe/failsafe.c b/drivers/net/failsafe/failsafe.c index 7f89486d4e..06e859e9fd 100644 --- a/drivers/net/failsafe/failsafe.c +++ b/drivers/net/failsafe/failsafe.c @@ -71,7 +71,7 @@ failsafe_hotplug_alarm_install(struct rte_eth_dev *dev) return -EINVAL; if (PRIV(dev)->pending_alarm) return 0; - ret = rte_eal_alarm_set(hotplug_poll * 1000, + ret = rte_eal_alarm_set(failsafe_hotplug_poll * 1000, fs_hotplug_alarm, dev); if (ret) { @@ -225,7 +225,7 @@ fs_eth_dev_create(struct rte_vdev_device *vdev) goto unregister_new_callback; } mac = &dev->data->mac_addrs[0]; - if (mac_from_arg) { + if (failsafe_mac_from_arg) { /* * If MAC address was provided as a parameter, * apply to all probed slaves. @@ -280,7 +280,8 @@ free_args: free_subs: fs_sub_device_free(dev); free_dev: - rte_free(PRIV(dev)); + /* mac_addrs must not be freed alone because part of dev_private */ + dev->data->mac_addrs = NULL; rte_eth_dev_release_port(dev); return -1; } @@ -304,7 +305,9 @@ fs_rte_eth_free(const char *name) ret = pthread_mutex_destroy(&PRIV(dev)->hotplug_mutex); if (ret) ERROR("Error while destroying hotplug mutex"); - rte_free(PRIV(dev)); + rte_free(PRIV(dev)->mcast_addrs); + /* mac_addrs must not be freed alone because part of dev_private */ + dev->data->mac_addrs = NULL; rte_eth_dev_release_port(dev); return ret; } @@ -328,6 +331,7 @@ rte_pmd_failsafe_probe(struct rte_vdev_device *vdev) } /* TODO: request info from primary to set up Rx and Tx */ eth_dev->dev_ops = &failsafe_ops; + eth_dev->device = &vdev->device; rte_eth_dev_probing_finish(eth_dev); return 0; }