> -----Original Message----- > From: Intel-wired-lan <[email protected]> On Behalf Of > Aleksandr Loktionov > Sent: 27 March 2026 12:53 > To: [email protected]; Nguyen, Anthony L > <[email protected]>; Loktionov, Aleksandr > <[email protected]> > Cc: [email protected]; Keller, Jacob E <[email protected]>; Jakub > Kicinski <[email protected]> > Subject: [Intel-wired-lan] [PATCH net] ice: fix locking around > wait_event_interruptible_locked_irq > > From: Jacob Keller <[email protected]> > > Commit 50327223a8bb ("ice: add lock to protect low latency interface") > introduced a wait queue used to protect the low latency timer interface. > The queue is used with the wait_event_interruptible_locked_irq macro, which > unlocks the wait queue lock while sleeping. The irq variant uses > spin_lock_irq and spin_unlock_irq to manage this. The wait queue lock was > previously locked using spin_lock_irqsave. This difference in lock variants > could lead to issues, since wait_event would unlock the wait queue and > restore interrupts while sleeping. > > The ice_read_phy_tstamp_ll_e810() function is ultimately called through > ice_read_phy_tstamp, which is called from ice_ptp_process_tx_tstamp or > ice_ptp_clear_unexpected_tx_ready. The former is called through the > miscellaneous IRQ thread function, while the latter is called from the > service task work queue thread. Neither of these functions has interrupts > disabled, so use spin_lock_irq instead of spin_lock_irqsave. > > Fixes: 50327223a8bb ("ice: add lock to protect low latency interface") > Cc: [email protected] > Reported-by: Jakub Kicinski <[email protected]> > Closes: https://lore.kernel.org/netdev/[email protected]/ > Signed-off-by: Jacob Keller <[email protected]> > Signed-off-by: Aleksandr Loktionov <[email protected]> > --- > > drivers/net/ethernet/intel/ice/ice_ptp_hw.c | 9 ++++----- > 1 file changed, 4 insertions(+), 5 deletions(-) >
Tested-by: Rinitha S <[email protected]> (A Contingent worker at Intel)
