linux_dsm_epyc7002/drivers/net/ethernet/intel/ixgbe
Mika Lansirinne 860502bf68 ixgbe: get pauseparam autoneg
There is a problem in the ixgbe driver with the reporting of the flow
control parameters. The autoneg parameter is shown to be of if
*either* it really is off, or current modes for both tx and rx are off.

The problem is seen when the parameters are read or set when the link
is down. In this case, the driver sees that tx and rx are currently off
and therefore autoneg parameter is incorrectly reported to be off too.
Also, the ethtool binary can not set the autoneg off since it sees that
it already is. When a link later comes up, the autonegotiation is
carried out normally and the driver later on reports the autoneg
parameter to be on (as it is) and then it can also be changed with
ethtool.

The patch is made against v3.0 kernel, but the problem seems to be there
since v2.6.30-rc1.

Reviewer comments: What we are trying to do is to disable flow control
while the cable is disconnected. Since ixgbe defaults to full flow
control, we call ethtool -A autoneg off rx off tx off while the cable
is disconnected. This doesn't work, because the driver sets
hw->fc.current_mode = ixgbe_fc_none if the cable is unplugged.
ixgbe_get_pauseparam() then reports to ethtool that nothing needs to be
done. The code fixes this, but it might have some unknown consequences.

Signed-off-by: Mika Lansirinne <mika.lansirinne@stonesoft.com>
Reviewed-by: Esa-Pekka Pyokkimies <esa-pekka.pyokkimies@stonesoft.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2011-10-05 02:54:59 -07:00
..
ixgbe_82598.c ixgbe: do not disable flow control in ixgbe_check_mac_link 2011-10-05 02:54:46 -07:00
ixgbe_82599.c ixgbe: add support for new 82599 device 2011-10-05 02:54:19 -07:00
ixgbe_common.c ixgbe: do not disable flow control in ixgbe_check_mac_link 2011-10-05 02:54:46 -07:00
ixgbe_common.h ixgbe: avoid HW lockup when adapter is reset with Tx work pending 2011-09-23 09:05:51 -07:00
ixgbe_dcb_82598.c ixgbe: update {P}FC thresholds to account for X540 and loopback 2011-09-28 23:09:59 -07:00
ixgbe_dcb_82598.h
ixgbe_dcb_82599.c ixgbe: update {P}FC thresholds to account for X540 and loopback 2011-09-28 23:09:59 -07:00
ixgbe_dcb_82599.h
ixgbe_dcb_nl.c ixgbe: dcb, set priority to traffic class mappings 2011-09-23 09:05:50 -07:00
ixgbe_dcb.c ixgbe: DCB, do not call set_state() from IEEE mode 2011-09-23 09:05:49 -07:00
ixgbe_dcb.h ixgbe: update {P}FC thresholds to account for X540 and loopback 2011-09-28 23:09:59 -07:00
ixgbe_ethtool.c ixgbe: get pauseparam autoneg 2011-10-05 02:54:59 -07:00
ixgbe_fcoe.c ixgbe: disable LLI for FCoE 2011-09-28 23:09:10 -07:00
ixgbe_fcoe.h
ixgbe_main.c ixgbe: add support for new 82599 device 2011-10-05 02:54:19 -07:00
ixgbe_mbx.c
ixgbe_mbx.h
ixgbe_phy.c ixgbe: remove return code for functions that always return 0 2011-10-05 02:53:54 -07:00
ixgbe_phy.h
ixgbe_sriov.c ixgbe: Reconfigure SR-IOV Init 2011-09-23 09:05:49 -07:00
ixgbe_sriov.h ixgbe: Reconfigure SR-IOV Init 2011-09-23 09:05:49 -07:00
ixgbe_type.h ixgbe: add support for new 82599 device 2011-10-05 02:54:19 -07:00
ixgbe_x540.c ixgbe: remove global reset to the MAC 2011-09-23 09:05:52 -07:00
ixgbe.h ixgbe: Cleanup q_vector interrupt throttle rate logic 2011-09-28 23:08:23 -07:00
Makefile