Skip to contentSkip to conversation

ixgbe: fix link speed detection of ixgbevf

PATCH In review Choonho Son 2 participants 2 messages Nov 9, 2014 – Dec 19, 2014 1 message not in the archive

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ixgbe: fix link speed detection of ixgbevf

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

---
 lib/librte_pmd_ixgbe/ixgbe_ethdev.c | 1 +
 1 file changed, 1 insertion(+)
lib/librte_pmd_ixgbe/ixgbe_ethdev.c +1 -0
index 9c73a30..6eab1e8 100644
@@ -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);
Signature · 1 line
1.9.1

A message that is not in the archive (sent off-list or not yet received): 1415538088-11249-1-git-send-email-choonho.son-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org

#2 lore raw

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/