summaryrefslogtreecommitdiff
path: root/tools/testing/radix-tree/generated/autoconf.h
diff options
context:
space:
mode:
authorJacob Keller <jacob.e.keller@intel.com>2025-04-23 00:03:09 +0300
committerTony Nguyen <anthony.l.nguyen@intel.com>2025-04-30 00:28:40 +0300
commitc7d6cb96d5c33b5148f3dc76fcd30a9b8cd9e973 (patch)
tree725059a634b03f748c01077c7da7b0a95dcc98ae /tools/testing/radix-tree/generated/autoconf.h
parented375b182140eeb9c73609b17939c8a29b27489e (diff)
downloadlinux-c7d6cb96d5c33b5148f3dc76fcd30a9b8cd9e973.tar.xz
igc: fix lock order in igc_ptp_reset
Commit 1a931c4f5e68 ("igc: add lock preventing multiple simultaneous PTM transactions") added a new mutex to protect concurrent PTM transactions. This lock is acquired in igc_ptp_reset() in order to ensure the PTM registers are properly disabled after a device reset. The flow where the lock is acquired already holds a spinlock, so acquiring a mutex leads to a sleep-while-locking bug, reported both by smatch, and the kernel test robot. The critical section in igc_ptp_reset() does correctly use the readx_poll_timeout_atomic variants, but the standard PTM flow uses regular sleeping variants. This makes converting the mutex to a spinlock a bit tricky. Instead, re-order the locking in igc_ptp_reset. Acquire the mutex first, and then the tmreg_lock spinlock. This is safe because there is no other ordering dependency on these locks, as this is the only place where both locks were acquired simultaneously. Indeed, any other flow acquiring locks in that order would be wrong regardless. Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> Fixes: 1a931c4f5e68 ("igc: add lock preventing multiple simultaneous PTM transactions") Link: https://lore.kernel.org/intel-wired-lan/Z_-P-Hc1yxcw0lTB@stanley.mountain/ Link: https://lore.kernel.org/intel-wired-lan/202504211511.f7738f5d-lkp@intel.com/T/#u Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> Reviewed-by: Vitaly Lifshits <vitaly.lifshits@intel.com> Tested-by: Mor Bar-Gabay <morx.bar.gabay@intel.com> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Diffstat (limited to 'tools/testing/radix-tree/generated/autoconf.h')
0 files changed, 0 insertions, 0 deletions