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: remove unused interface name query
[dpdk.git]
/
drivers
/
net
/
mlx5
/
mlx5_trigger.c
diff --git
a/drivers/net/mlx5/mlx5_trigger.c
b/drivers/net/mlx5/mlx5_trigger.c
index
68e00a0
..
30addd2
100644
(file)
--- a/
drivers/net/mlx5/mlx5_trigger.c
+++ b/
drivers/net/mlx5/mlx5_trigger.c
@@
-33,12
+33,14
@@
/* DPDK headers don't like -pedantic. */
#ifdef PEDANTIC
/* DPDK headers don't like -pedantic. */
#ifdef PEDANTIC
-#pragma GCC diagnostic ignored "-pedantic"
+#pragma GCC diagnostic ignored "-
W
pedantic"
#endif
#include <rte_ether.h>
#include <rte_ethdev.h>
#endif
#include <rte_ether.h>
#include <rte_ethdev.h>
+#include <rte_interrupts.h>
+#include <rte_alarm.h>
#ifdef PEDANTIC
#ifdef PEDANTIC
-#pragma GCC diagnostic error "-pedantic"
+#pragma GCC diagnostic error "-
W
pedantic"
#endif
#include "mlx5.h"
#endif
#include "mlx5.h"
@@
-62,6
+64,9
@@
mlx5_dev_start(struct rte_eth_dev *dev)
struct priv *priv = dev->data->dev_private;
int err;
struct priv *priv = dev->data->dev_private;
int err;
+ if (mlx5_is_secondary())
+ return -E_RTE_SECONDARY;
+
priv_lock(priv);
if (priv->started) {
priv_unlock(priv);
priv_lock(priv);
if (priv->started) {
priv_unlock(priv);
@@
-70,11
+75,7
@@
mlx5_dev_start(struct rte_eth_dev *dev)
DEBUG("%p: allocating and configuring hash RX queues", (void *)dev);
err = priv_create_hash_rxqs(priv);
if (!err)
DEBUG("%p: allocating and configuring hash RX queues", (void *)dev);
err = priv_create_hash_rxqs(priv);
if (!err)
- err = priv_promiscuous_enable(priv);
- if (!err)
- err = priv_mac_addrs_enable(priv);
- if (!err)
- err = priv_allmulticast_enable(priv);
+ err = priv_rehash_flows(priv);
if (!err)
priv->started = 1;
else {
if (!err)
priv->started = 1;
else {
@@
-82,11
+83,15
@@
mlx5_dev_start(struct rte_eth_dev *dev)
" %s",
(void *)priv, strerror(err));
/* Rollback. */
" %s",
(void *)priv, strerror(err));
/* Rollback. */
- priv_allmulticast_disable(priv);
- priv_promiscuous_disable(priv);
+ priv_special_flow_disable_all(priv);
priv_mac_addrs_disable(priv);
priv_destroy_hash_rxqs(priv);
}
priv_mac_addrs_disable(priv);
priv_destroy_hash_rxqs(priv);
}
+ if (dev->data->dev_conf.fdir_conf.mode != RTE_FDIR_MODE_NONE)
+ priv_fdir_enable(priv);
+ priv_dev_interrupt_handler_install(priv, dev);
+ err = priv_flow_start(priv);
+ priv_xstats_init(priv);
priv_unlock(priv);
return -err;
}
priv_unlock(priv);
return -err;
}
@@
-104,16
+109,21
@@
mlx5_dev_stop(struct rte_eth_dev *dev)
{
struct priv *priv = dev->data->dev_private;
{
struct priv *priv = dev->data->dev_private;
+ if (mlx5_is_secondary())
+ return;
+
priv_lock(priv);
if (!priv->started) {
priv_unlock(priv);
return;
}
DEBUG("%p: cleaning up and destroying hash RX queues", (void *)dev);
priv_lock(priv);
if (!priv->started) {
priv_unlock(priv);
return;
}
DEBUG("%p: cleaning up and destroying hash RX queues", (void *)dev);
- priv_allmulticast_disable(priv);
- priv_promiscuous_disable(priv);
+ priv_special_flow_disable_all(priv);
priv_mac_addrs_disable(priv);
priv_destroy_hash_rxqs(priv);
priv_mac_addrs_disable(priv);
priv_destroy_hash_rxqs(priv);
+ priv_fdir_disable(priv);
+ priv_flow_stop(priv);
+ priv_dev_interrupt_handler_uninstall(priv, dev);
priv->started = 0;
priv_unlock(priv);
}
priv->started = 0;
priv_unlock(priv);
}