If PF reset is finished but VF reset is pending, VF should no need to
send any invalid cmd to PF. That would avoid mass unexpected behaviors
affecting the robust.
Fixes:
22b123a36d07 ("net/avf: initialize PMD")
Fixes:
9e03acd726cf ("net/iavf: fix flow access")
Cc: stable@dpdk.org
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Tested-by: Hailin Xu <hailinx.xu@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
uint16_t mc_addrs_num; /* Multicast mac addresses number */
struct iavf_vsi vsi;
- bool vf_reset;
+ bool vf_reset; /* true for VF reset pending, false for no VF reset */
uint64_t flags;
uint8_t *rss_lut;
}
}
+ vf->vf_reset = false;
+
return 0;
err_rss:
rte_free(vf->rss_key);
struct iavf_flow_parser *parser;
int ret;
+ if (vf->vf_reset)
+ return -EIO;
+
if (!vf->vf_res)
return -EINVAL;
static void
iavf_hash_uninit(struct iavf_adapter *ad)
{
+ struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(ad);
+
+ if (vf->vf_reset)
+ return;
+
if (iavf_hash_default_set(ad, false))
PMD_DRV_LOG(ERR, "fail to delete default RSS");
if (_atomic_set_cmd(vf, args->ops))
return -1;
+ if (vf->vf_reset)
+ return -EIO;
+
ret = iavf_aq_send_msg_to_pf(hw, args->ops, IAVF_SUCCESS,
args->in_args, args->in_args_size, NULL);
if (ret) {