int err = 0;
int i = 0;
- if (_atomic_set_cmd(vf, args->ops))
- return -1;
-
if (vf->vf_reset)
return -EIO;
+ if (_atomic_set_cmd(vf, args->ops))
+ return -1;
+
ret = iavf_aq_send_msg_to_pf(hw, args->ops, IAVF_SUCCESS,
args->in_args, args->in_args_size, NULL);
if (ret) {
switch (pf_msg->event) {
case VIRTCHNL_EVENT_RESET_IMPENDING:
PMD_DRV_LOG(DEBUG, "VIRTCHNL_EVENT_RESET_IMPENDING event");
+ vf->vf_reset = true;
rte_eth_dev_callback_process(dev, RTE_ETH_EVENT_INTR_RESET,
NULL);
break;
err = iavf_execute_vf_cmd(adapter, &args);
- if (err)
+ if (err) {
PMD_DRV_LOG(ERR,
"fail to execute command CONFIG_PROMISCUOUS_MODE");
- return err;
+
+ if (err == IAVF_NOT_SUPPORTED)
+ return -ENOTSUP;
+
+ return -EAGAIN;
+ }
+
+ vf->promisc_unicast_enabled = enable_unicast;
+ vf->promisc_multicast_enabled = enable_multicast;
+ return 0;
}
int