linux/drivers
Jakub Kicinski 186e5888fd Merge branch '1GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue
Tony Nguyen says:

====================
igc: Fix PTM timeout

Christopher S M Hall says:

There have been sporadic reports of PTM timeouts using i225/i226 devices

These timeouts have been root caused to:

1) Manipulating the PTM status register while PTM is enabled
   and triggered
2) The hardware retrying too quickly when an inappropriate response
   is received from the upstream device

The issue can be reproduced with the following:

$ sudo phc2sys -R 1000 -O 0 -i tsn0 -m

Note: 1000 Hz (-R 1000) is unrealistically large, but provides a way to
quickly reproduce the issue.

PHC2SYS exits with:

"ioctl PTP_OFFSET_PRECISE: Connection timed out" when the PTM transaction
  fails

The first patch in this series also resolves an issue reported by Corinna
Vinschen relating to kdump:

  This patch also fixes a hang in igc_probe() when loading the igc
  driver in the kdump kernel on systems supporting PTM.

  The igc driver running in the base kernel enables PTM trigger in
  igc_probe().  Therefore the driver is always in PTM trigger mode,
  except in brief periods when manually triggering a PTM cycle.

  When a crash occurs, the NIC is reset while PTM trigger is enabled.
  Due to a hardware problem, the NIC is subsequently in a bad busmaster
  state and doesn't handle register reads/writes.  When running
  igc_probe() in the kdump kernel, the first register access to a NIC
  register hangs driver probing and ultimately breaks kdump.

  With this patch, igc has PTM trigger disabled most of the time,
  and the trigger is only enabled for very brief (10 - 100 us) periods
  when manually triggering a PTM cycle.  Chances that a crash occurs
  during a PTM trigger are not zero, but extremly reduced.

* '1GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue:
  igc: add lock preventing multiple simultaneous PTM transactions
  igc: cleanup PTP module if probe fails
  igc: handle the IGC_PTP_ENABLED flag correctly
  igc: move ktime snapshot into PTM retry loop
  igc: increase wait time before retrying PTM
  igc: fix PTM cycle trigger logic
====================

Link: https://patch.msgid.link/20250411162857.2754883-1-anthony.l.nguyen@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-04-14 15:58:31 -07:00
..
accel treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
accessibility treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
acpi libnvdimm additions for 6.15 2025-04-02 20:27:18 -07:00
amba
android
ata treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
atm treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
auxdisplay treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
base treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
bcma
block block-6.15-20250410 2025-04-10 07:02:22 -07:00
bluetooth bluetooth pull request for net: 2025-04-11 16:34:04 -07:00
bus treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
cache
cdrom
cdx Merge branches 'apple/dart', 'arm/smmu/updates', 'arm/smmu/bindings', 'rockchip', 's390', 'core', 'intel/vt-d' and 'amd/amd-vi' into next 2025-03-20 09:11:09 +01:00
char treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
clk ARM and clkdev updates for 6.15-rc1 2025-04-03 12:21:44 -07:00
clocksource RISC-V Patches for the 6.15 Merge Window, Part 1 2025-04-04 09:49:17 -07:00
comedi treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
connector
counter Char/Misc fixes for 6.15-rc1 2025-04-02 18:03:34 -07:00
cpufreq treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
cpuidle pmdomain core: 2025-03-25 20:40:51 -07:00
crypto treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
cxl cxl for v6.15 2025-04-02 20:04:43 -07:00
dax device/dax: properly refcount device dax pages when mapping 2025-03-17 22:06:41 -07:00
dca
devfreq
dio
dma treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
dma-buf treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
dpll Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-03-20 21:38:01 +01:00
edac - Add infrastructure support to EDAC in order to be able to register memory 2025-03-25 14:00:26 -07:00
eisa
extcon
firewire treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
firmware ARM: 2025-04-08 13:47:55 -07:00
fpga
fsi
fwctl pds_fwctl: add rpc and query support 2025-03-21 20:57:55 -03:00
gnss
gpio gpiolib: of: Move Atmel HSMCI quirk up out of the regulator comment 2025-04-08 11:06:45 +02:00
gpu A set of final cleanups for the timer subsystem: 2025-04-06 08:35:37 -07:00
greybus treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
hid treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
hsi treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
hte treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
hv - The 6 patch series "Enable strict percpu address space checks" from 2025-04-01 09:29:18 -07:00
hwmon treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
hwspinlock hwspinlock: Remove unused hwspin_lock_get_id() 2025-03-21 17:12:04 -05:00
hwtracing Char/Misc/IIO driver updates for 6.15-rc1 2025-04-01 11:26:08 -07:00
i2c treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
i3c i3c: Add NULL pointer check in i3c_master_queue_ibi() 2025-03-31 11:44:00 +02:00
idle Power management updates for 6.15-rc1 2025-03-25 15:00:18 -07:00
iio treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
infiniband treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
input A set of final cleanups for the timer subsystem: 2025-04-06 08:35:37 -07:00
interconnect
iommu treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
ipack
irqchip irqdomain: Rename irq_get_default_host() to irq_get_default_domain() 2025-04-04 16:39:10 +02:00
isdn treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
leds treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
macintosh treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
mailbox treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
mcb
md CRC cleanups for 6.15 2025-04-08 12:09:28 -07:00
media treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
memory treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
memstick treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
message SCSI misc on 20250326 2025-03-26 19:57:34 -07:00
mfd * Maxim MAX77705: 2025-03-29 14:33:13 -07:00
misc treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
mmc treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
most treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
mtd mtd: rawnand: Add status chack in r852_ready() 2025-04-07 09:02:49 +02:00
mux
net Merge branch '1GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue 2025-04-14 15:58:31 -07:00
nfc treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
ntb Bug fixes for NTB Switchtec driver mw negative shift, Intel NTB link 2025-04-04 14:23:07 -07:00
nubus
nvdimm libnvdimm additions for 6.15 2025-04-02 20:27:18 -07:00
nvme treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
nvmem net, treewide: define and use MAC_ADDR_STR_LEN 2025-03-19 19:17:58 +01:00
of Devicetree for v6.15: 2025-03-29 11:23:16 -07:00
opp
parisc
parport treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
pci treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
pcmcia treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
peci
perf pci-v6.15-changes 2025-03-28 19:36:53 -07:00
phy phy-for-6.15 2025-04-01 12:47:11 -07:00
pinctrl Pin control changes for the v6.15 kernel cycle: 2025-03-29 16:59:16 -07:00
platform treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
pmdomain pmdomain: arm: scmi_pm_domain: Remove redundant state verification 2025-03-17 11:12:01 +01:00
pnp Staging driver updates for 6.15-rc1 2025-04-02 18:09:17 -07:00
power i2c-for-6.15-rc1 2025-04-01 14:21:02 -07:00
powercap Power management updates for 6.15-rc1 2025-03-25 15:00:18 -07:00
pps treewide: Convert new and leftover hrtimer_init() users 2025-04-05 10:30:17 +02:00
ps3
ptp treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
pwm Pin control changes for the v6.15 kernel cycle: 2025-03-29 16:59:16 -07:00
rapidio
ras
regulator These are objtool fixes and updates by Josh Poimboeuf, centered 2025-04-02 10:30:10 -07:00
remoteproc remoteproc: qcom_q6v5_pas: Make single-PD handling more robust 2025-03-22 08:42:39 -05:00
reset remoteproc updates for v6.15 2025-03-29 17:18:50 -07:00
rpmsg
rtc treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
s390 treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
sbus
scsi treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
sh
siox
slimbus
soc soc: drivers for 6.15, part 2 2025-04-04 09:06:32 -07:00
soundwire soundwire updates for 6.15 2025-04-01 12:43:13 -07:00
spi spi: Fixes for v6.15 2025-04-04 09:09:34 -07:00
spmi
ssb
staging treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
target treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
tc
tee
thermal More thermal control updates for 6.15-rc1 2025-04-01 16:51:44 -07:00
thunderbolt USB/Thunderbolt update for 6.15-rc1 2025-04-02 18:23:31 -07:00
tty treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
ufs Revert "Merge tag 'irq-msi-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip" 2025-03-28 11:22:54 -07:00
uio
usb treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
vdpa
vfio VFIO updates for v6.15-rc1 2025-04-01 19:35:19 -07:00
vhost virtio: features, fixes, cleanups 2025-04-01 18:52:54 -07:00
video treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
virt treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
virtio virtio: features, fixes, cleanups 2025-04-01 18:52:54 -07:00
w1
watchdog treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
xen x86/xen: fix balloon target initialization for PVH dom0 2025-04-07 11:24:12 +02:00
zorro
Kconfig
Makefile