On the latest ice kernel driver, renegotiating VIRTCHNL_OP_GET_VF_RESOURCES
will fail without hardware reset when using dcf.

This commit will send VIRTCHNL_OP_RESET_VF to pf before dpdk resets vf.

Fixes: 7a93cd3575eb ("net/iavf: add VF reset check")
Cc: sta...@dpdk.org

Signed-off-by: Kaiwen Deng <kaiwenx.d...@intel.com>
---
 drivers/net/iavf/iavf_ethdev.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
index 245b3cd854..1c2d23f80f 100644
--- a/drivers/net/iavf/iavf_ethdev.c
+++ b/drivers/net/iavf/iavf_ethdev.c
@@ -3038,6 +3038,16 @@ iavf_dev_reset(struct rte_eth_dev *dev)
        struct iavf_adapter *adapter =
                IAVF_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
        struct iavf_hw *hw = IAVF_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+       struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
+
+       if (!vf->in_reset_recovery) {
+               ret = iavf_aq_send_msg_to_pf(hw, VIRTCHNL_OP_RESET_VF,
+                                               IAVF_SUCCESS, NULL, 0, NULL);
+               if (ret) {
+                       PMD_DRV_LOG(ERR, "fail to send cmd 
VIRTCHNL_OP_RESET_VF");
+                       return ret;
+               }
+       }
 
        /*
         * Check whether the VF reset has been done and inform application,
-- 
2.34.1

Reply via email to