[dpdk-dev] ixgbe: fix link speed detection of ixgbevf
Commit Message
Link speed of virtual function is detected as default speed(100Mbps, half-duplex).
Before checking VF link, get_link_status must be set.
Checking link status
PMD: ixgbe_check_for_rst_vf(): ixgbe_check_for_rst_vf
done
PMD: ixgbe_check_for_rst_vf(): ixgbe_check_for_rst_vf
Port 0 Link Up - speed 100 Mbps - half-duplex
Signed-off-by: Choonho Son <choonho.son@gmail.com>
---
lib/librte_pmd_ixgbe/ixgbe_ethdev.c | 1 +
1 file changed, 1 insertion(+)
Comments
This patch is actually a workaround to the problem. By setting
get_link_status just before calling ixgbe_check_link defeats the whole
purpose of the variable and results in _always_ getting the link
status. I think that this patch should be superseded by the following
patch:
http://dpdk.org/dev/patchwork/patch/2104/
@@ -2002,6 +2002,7 @@ ixgbe_dev_link_update(struct rte_eth_dev *dev, int wait_to_complete)
memset(&old, 0, sizeof(old));
rte_ixgbe_dev_atomic_read_link_status(dev, &old);
+ hw->mac.get_link_status = 1;
/* check if it needs to wait to complete, if lsc interrupt is enabled */
if (wait_to_complete == 0 || dev->data->dev_conf.intr_conf.lsc != 0)
diag = ixgbe_check_link(hw, &link_speed, &link_up, 0);