]> git.droids-corp.org - dpdk.git/commitdiff
net/i40e: fix virtchnl message response timeout
authorBeilei Xing <beilei.xing@intel.com>
Mon, 17 Jul 2017 07:33:09 +0000 (15:33 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Wed, 19 Jul 2017 08:09:13 +0000 (11:09 +0300)
PF driver and VF driver communicated with each other by virtual
channel message. When VF sends message to PF to enable some
offload capability, PF should response if it is successful or not.
VIRTCHNL_OP_ENABLE_VLAN_STRIPPING is a new added message and the
old PF driver doesn’t support that. So no response is received by
DPDK VF. Then VF is blocked on this message and cannot roll back.
This patch clears pending command on VF side when the waiting duration
expires to avoid blocking following communication.

Fixes: 5f0b95d59a98 ("net/i40e: support VLAN stripping for VF")
Cc: stable@dpdk.org
Signed-off-by: Beilei Xing <beilei.xing@intel.com>
drivers/net/i40e/i40e_ethdev_vf.c

index dc6c79449d1442a195bceffa8d023fba712a57c5..62dea59f4b95494469179104b6bce1b71d5c986b 100644 (file)
@@ -391,6 +391,11 @@ i40evf_execute_vf_cmd(struct rte_eth_dev *dev, struct vf_cmd_info *args)
                        rte_delay_ms(ASQ_DELAY_MS);
                        /* If don't read msg or read sys event, continue */
                } while (i++ < MAX_TRY_TIMES);
+               /* If there's no response is received, clear command */
+               if (i >= MAX_TRY_TIMES) {
+                       PMD_DRV_LOG(WARNING, "No response for %d", args->ops);
+                       _clear_cmd(vf);
+               }
                break;
        }