Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ixgbevf: Fix link speed display

The ixgbevf driver would always report 10Gig speeds even when the link
speed is downshifted to 1Gig. This patch fixes that problem.

Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Greg Rose and committed by
David S. Miller
3203df04 a9cbd588

+9 -6
+7 -5
drivers/net/ixgbevf/defines.h
··· 41 41 #define IXGBE_LINK_SPEED_1GB_FULL 0x0020 42 42 #define IXGBE_LINK_SPEED_10GB_FULL 0x0080 43 43 44 - #define IXGBE_CTRL_RST 0x04000000 /* Reset (SW) */ 45 - #define IXGBE_RXDCTL_ENABLE 0x02000000 /* Enable specific Rx Queue */ 46 - #define IXGBE_TXDCTL_ENABLE 0x02000000 /* Enable specific Tx Queue */ 47 - #define IXGBE_LINKS_UP 0x40000000 48 - #define IXGBE_LINKS_SPEED 0x20000000 44 + #define IXGBE_CTRL_RST 0x04000000 /* Reset (SW) */ 45 + #define IXGBE_RXDCTL_ENABLE 0x02000000 /* Enable specific Rx Queue */ 46 + #define IXGBE_TXDCTL_ENABLE 0x02000000 /* Enable specific Tx Queue */ 47 + #define IXGBE_LINKS_UP 0x40000000 48 + #define IXGBE_LINKS_SPEED_82599 0x30000000 49 + #define IXGBE_LINKS_SPEED_10G_82599 0x30000000 50 + #define IXGBE_LINKS_SPEED_1G_82599 0x20000000 49 51 50 52 /* Number of Transmit and Receive Descriptors must be a multiple of 8 */ 51 53 #define IXGBE_REQ_TX_DESCRIPTOR_MULTIPLE 8
+2 -1
drivers/net/ixgbevf/vf.c
··· 359 359 else 360 360 *link_up = false; 361 361 362 - if (links_reg & IXGBE_LINKS_SPEED) 362 + if ((links_reg & IXGBE_LINKS_SPEED_82599) == 363 + IXGBE_LINKS_SPEED_10G_82599) 363 364 *speed = IXGBE_LINK_SPEED_10GB_FULL; 364 365 else 365 366 *speed = IXGBE_LINK_SPEED_1GB_FULL;