/* DPDK headers don't like -pedantic. */
#ifdef PEDANTIC
-#pragma GCC diagnostic ignored "-pedantic"
+#pragma GCC diagnostic ignored "-Wpedantic"
#endif
#include <rte_ether.h>
#include <rte_ethdev.h>
#include <rte_interrupts.h>
#include <rte_alarm.h>
#ifdef PEDANTIC
-#pragma GCC diagnostic error "-pedantic"
+#pragma GCC diagnostic error "-Wpedantic"
#endif
#include "mlx5.h"
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);
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 {
" %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);
}
+ if (dev->data->dev_conf.fdir_conf.mode != RTE_FDIR_MODE_NONE)
+ priv_fdir_enable(priv);
priv_dev_interrupt_handler_install(priv, dev);
priv_unlock(priv);
return -err;
{
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_allmulticast_disable(priv);
- priv_promiscuous_disable(priv);
+ priv_special_flow_disable_all(priv);
priv_mac_addrs_disable(priv);
priv_destroy_hash_rxqs(priv);
+ priv_fdir_disable(priv);
priv_dev_interrupt_handler_uninstall(priv, dev);
priv->started = 0;
priv_unlock(priv);