- /* Rollback. */
- priv_special_flow_disable(priv, HASH_RXQ_FLOW_TYPE_IPV6MULTI);
- priv_special_flow_disable(priv, HASH_RXQ_FLOW_TYPE_BROADCAST);
- priv_special_flow_disable(priv, HASH_RXQ_FLOW_TYPE_ALLMULTI);
- priv_special_flow_disable(priv, HASH_RXQ_FLOW_TYPE_PROMISC);
- priv_mac_addrs_disable(priv);
- priv_destroy_hash_rxqs(priv);
+ goto error;
+ }
+ if (dev->data->dev_conf.fdir_conf.mode != RTE_FDIR_MODE_NONE)
+ priv_fdir_enable(priv);
+ err = priv_flow_start(priv);
+ if (err) {
+ priv->started = 0;
+ ERROR("%p: an error occurred while configuring flows:"
+ " %s",
+ (void *)priv, strerror(err));
+ goto error;
+ }
+ err = priv_rx_intr_vec_enable(priv);
+ if (err) {
+ ERROR("%p: RX interrupt vector creation failed",
+ (void *)priv);
+ goto error;