git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
net/mlx5: fix MPLS item validation
[dpdk.git]
/
drivers
/
net
/
failsafe
/
failsafe.c
diff --git
a/drivers/net/failsafe/failsafe.c
b/drivers/net/failsafe/failsafe.c
index
7f89486
..
06e859e
100644
(file)
--- 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;
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) {
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];
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.
/*
* 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:
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;
}
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");
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;
}
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;
}
/* 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;
}
rte_eth_dev_probing_finish(eth_dev);
return 0;
}