mirror_ubuntu-kernels/drivers/net/ethernet/intel/igb
Alessio Igor Bogani b888c510f7 igb: Avoid starting unnecessary workqueues
If ptp_clock_register() fails or CONFIG_PTP isn't enabled, avoid starting
PTP related workqueues.

In this way we can fix this:
 BUG: unable to handle page fault for address: ffffc9000440b6f8
 #PF: supervisor read access in kernel mode
 #PF: error_code(0x0000) - not-present page
 PGD 100000067 P4D 100000067 PUD 1001e0067 PMD 107dc5067 PTE 0
 Oops: 0000 [#1] PREEMPT SMP
 [...]
 Workqueue: events igb_ptp_overflow_check
 RIP: 0010:igb_rd32+0x1f/0x60
 [...]
 Call Trace:
  igb_ptp_read_82580+0x20/0x50
  timecounter_read+0x15/0x60
  igb_ptp_overflow_check+0x1a/0x50
  process_one_work+0x1cb/0x3c0
  worker_thread+0x53/0x3f0
  ? rescuer_thread+0x370/0x370
  kthread+0x142/0x160
  ? kthread_associate_blkcg+0xc0/0xc0
  ret_from_fork+0x1f/0x30

Fixes: 1f6e8178d6 ("igb: Prevent dropped Tx timestamps via work items and interrupts.")
Fixes: d339b13316 ("igb: add PTP Hardware Clock code")
Signed-off-by: Alessio Igor Bogani <alessio.bogani@elettra.eu>
Tested-by: Arpana Arland <arpanax.arland@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://lore.kernel.org/r/20230821171927.2203644-1-anthony.l.nguyen@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-08-22 17:24:28 -07:00
..
e1000_82575.c igb: remove unexpected word "the" 2022-06-30 10:43:18 -07:00
e1000_82575.h
e1000_defines.h igb: Remove duplicate defines 2022-06-09 10:05:31 -07:00
e1000_hw.h igb: Fix duplicate include guard 2021-03-19 08:47:46 -07:00
e1000_i210.c igb: remove never changed variable `ret_val' 2021-12-21 09:17:47 -08:00
e1000_i210.h
e1000_mac.c igb: fix bit_shift to be in [1..8] range 2023-05-17 09:25:04 +01:00
e1000_mac.h
e1000_mbx.c intel: clean up mismatched header comments 2021-03-23 11:34:02 -07:00
e1000_mbx.h
e1000_nvm.c
e1000_nvm.h
e1000_phy.c igb: Fix fall-through warnings for Clang 2021-03-23 11:34:02 -07:00
e1000_phy.h
e1000_regs.h igb: Remove duplicate defines 2022-06-09 10:05:31 -07:00
igb_ethtool.c igb: fix nvm.ops.read() error handling 2023-06-12 13:33:22 -07:00
igb_hwmon.c
igb_main.c igb: Fix igb_down hung on surprise removal 2023-06-22 19:49:44 -07:00
igb_ptp.c igb: Avoid starting unnecessary workqueues 2023-08-22 17:24:28 -07:00
igb.h igb: Add lock to avoid data race 2022-08-18 11:03:26 -07:00
Makefile