]> git.baikalelectronics.ru Git - kernel.git/commitdiff
igc: Do not enable crosstimestamping for i225-V models
authorVinicius Costa Gomes <vinicius.gomes@intel.com>
Tue, 14 Dec 2021 00:39:49 +0000 (16:39 -0800)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Tue, 28 Dec 2021 17:54:10 +0000 (09:54 -0800)
It was reported that when PCIe PTM is enabled, some lockups could
be observed with some integrated i225-V models.

While the issue is investigated, we can disable crosstimestamp for
those models and see no loss of functionality, because those models
don't have any support for time synchronization.

Fixes: 0659b31395b3 ("igc: Add support for PTP getcrosststamp()")
Link: https://lore.kernel.org/all/924175a188159f4e03bd69908a91e606b574139b.camel@gmx.de/
Reported-by: Stefan Dietrich <roots@gmx.de>
Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
Tested-by: Nechama Kraus <nechamax.kraus@linux.intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/igc/igc_ptp.c

index 30568e3544cdab6290d855f42292cf4b75676da7..4f9245aa79a1884213a40439bfe3b9971048255d 100644 (file)
@@ -768,7 +768,20 @@ int igc_ptp_get_ts_config(struct net_device *netdev, struct ifreq *ifr)
  */
 static bool igc_is_crosststamp_supported(struct igc_adapter *adapter)
 {
-       return IS_ENABLED(CONFIG_X86_TSC) ? pcie_ptm_enabled(adapter->pdev) : false;
+       if (!IS_ENABLED(CONFIG_X86_TSC))
+               return false;
+
+       /* FIXME: it was noticed that enabling support for PCIe PTM in
+        * some i225-V models could cause lockups when bringing the
+        * interface up/down. There should be no downsides to
+        * disabling crosstimestamping support for i225-V, as it
+        * doesn't have any PTP support. That way we gain some time
+        * while root causing the issue.
+        */
+       if (adapter->pdev->device == IGC_DEV_ID_I225_V)
+               return false;
+
+       return pcie_ptm_enabled(adapter->pdev);
 }
 
 static struct system_counterval_t igc_device_tstamp_to_system(u64 tstamp)