linux_dsm_epyc7002/drivers/net/ethernet/intel/ixgbe
Jacob Keller b6138ed604 ixgbe: Fix PHC loophole allowing misconfiguration of increment register
This patch fixes a potential hole when configuring the cycle counter used to
generate the nanosecond time clock. This clock is based off of the SYSTIME
registers along with the TIMINCA registers. The TIMINCA register determines
the increment to be added to the SYSTIME registers every DMA clock tick. This
register needs to be reconfigured whenever the link-speed changes. However,
the value calculated stays the same when link is down and when link is up.
Misconfiguration can occur if the link status changes due to a reset, which
causes the TIMINCA register to be reset. This reset puts the device in an
unstable state where the SYSTIME registers stop incrementing and the PTP
protocol does not function.

The solution is to double check the TIMINCA value and always reset the value
if the register is zero. This prevents a misconfiguration bug that halts the
PHC.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Acked-by: Don Skidmore <donald.c.skidmore@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-06-17 16:15:06 -07:00
..
ixgbe_82598.c ixgbe: Update link flow control to correctly handle multiple packet buffer DCB 2012-05-04 03:25:24 -07:00
ixgbe_82599.c ixgbe: add hwmon interface to export thermal data 2012-05-02 02:12:23 -07:00
ixgbe_common.c ixgbe: correct disable_rx_buff timeout 2012-05-09 23:07:26 -07:00
ixgbe_common.h ixgbe: Update link flow control to correctly handle multiple packet buffer DCB 2012-05-04 03:25:24 -07:00
ixgbe_dcb_82598.c ixgbe: Clean up priority based flow control 2012-05-09 22:15:40 -07:00
ixgbe_dcb_82598.h ixgbe: update copyright to 2012 2012-02-03 03:05:30 -08:00
ixgbe_dcb_82599.c ixgbe: Clean up priority based flow control 2012-05-09 22:15:40 -07:00
ixgbe_dcb_82599.h ixgbe: update copyright to 2012 2012-02-03 03:05:30 -08:00
ixgbe_dcb_nl.c ixgbe: Set Drop_EN bit when multiple Rx queues are present w/o flow control 2012-05-09 22:31:44 -07:00
ixgbe_dcb.c ixgbe: update copyright to 2012 2012-02-03 03:05:30 -08:00
ixgbe_dcb.h ixgbe: update copyright to 2012 2012-02-03 03:05:30 -08:00
ixgbe_ethtool.c ixgbe: add support for get_ts_info 2012-05-09 23:12:03 -07:00
ixgbe_fcoe.c ixgbe: fix calling skb_put on nonlinear skb assertion bug 2012-04-30 18:54:52 -07:00
ixgbe_fcoe.h ixgbe: update copyright to 2012 2012-02-03 03:05:30 -08:00
ixgbe_lib.c ixgbe: Reorder the ring to q_vector mapping to improve performance 2012-05-04 03:18:22 -07:00
ixgbe_main.c ixgbe: IXGBE_RXD_STAT_VP set even with Rx stripping enabled 2012-06-05 21:04:25 -07:00
ixgbe_mbx.c ixgbe: update copyright to 2012 2012-02-03 03:05:30 -08:00
ixgbe_mbx.h ixgbe: update copyright to 2012 2012-02-03 03:05:30 -08:00
ixgbe_phy.c ixgbe: add I2C clock stretching 2012-04-14 02:10:50 -07:00
ixgbe_phy.h ixgbe: update copyright to 2012 2012-02-03 03:05:30 -08:00
ixgbe_ptp.c ixgbe: Fix PHC loophole allowing misconfiguration of increment register 2012-06-17 16:15:06 -07:00
ixgbe_sriov.c ixgbe: Fix bogus error message 2012-05-09 22:40:29 -07:00
ixgbe_sriov.h ixgbe: update copyright to 2012 2012-02-03 03:05:30 -08:00
ixgbe_sysfs.c ixgbe: cleanup the hwmon function calls 2012-05-09 23:14:43 -07:00
ixgbe_type.h ixgbe: Enable timesync clock-out feature for PPS support on X540 2012-05-09 22:55:39 -07:00
ixgbe_x540.c ixgbe: add hwmon interface to export thermal data 2012-05-02 02:12:23 -07:00
ixgbe.h ixgbe: cleanup the hwmon function calls 2012-05-09 23:14:43 -07:00
Makefile ixgbe: Hardware Timestamping + PTP Hardware Clock (PHC) 2012-05-09 22:48:51 -07:00