OSDN Git Service

i40e: use same check for Rx hang as for Rx timestamps
authorJacob Keller <jacob.e.keller@intel.com>
Sun, 14 Dec 2014 01:55:14 +0000 (01:55 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Fri, 16 Jan 2015 13:20:47 +0000 (05:20 -0800)
It's possible that the user configured only Tx hardware timestamping,
and thus we might be receiving PTP traffic which we timestamp but which
software never reads. In this case we don't want to check for Rx
timestamp hang, because we already know that software won't be handling
them. Thus, we add the same check against pf->ptp_rx as we have in the
Rx timestamp code path.

Change-ID: I66486c8dba307facbff8eace4e52e2f083789d1b
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Acked-by: Shannon Nelson <shannon.nelson@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e_ptp.c

index a152878..9f756b4 100644 (file)
@@ -247,7 +247,12 @@ void i40e_ptp_rx_hang(struct i40e_vsi *vsi)
        u32 prttsyn_stat;
        int n;
 
-       if (!(pf->flags & I40E_FLAG_PTP))
+       /* Since we cannot turn off the Rx timestamp logic if the device is
+        * configured for Tx timestamping, we check if Rx timestamping is
+        * configured. We don't want to spuriously warn about Rx timestamp
+        * hangs if we don't care about the timestamps.
+        */
+       if (!(pf->flags & I40E_FLAG_PTP) || !pf->ptp_rx)
                return;
 
        prttsyn_stat = rd32(hw, I40E_PRTTSYN_STAT_1);