Re: [PATCH iwl-net 0/3] ice: fix RTNL vs auxiliary device lock inversion
From: Przemek Kitszel
Date: Tue Oct 20 2026 - 06:04:09 EST
A window entry is a contended device_trylock(), that is, the exact
moment really_probe() holds the auxiliary device lock and waits for the
RTNL lock, so each one is an occasion that used to close the cycle.
Without the series the console shows both halves and the box only
returns through hung_task_panic. 25 reboots on the patched kernel were
clean.
Petr Oros (3):
ice: avoid RTNL deadlock when notifying the RDMA auxiliary driver
ice: do not block on the aux device lock in ethtool set_channels
ice: do not block on the aux device lock in ndo_setup_tc
drivers/net/ethernet/intel/ice/ice_dcb_lib.c | 9 +++++++-
drivers/net/ethernet/intel/ice/ice_ethtool.c | 6 +++++-
drivers/net/ethernet/intel/ice/ice_idc.c | 20 ++++++++++++++----
drivers/net/ethernet/intel/ice/ice_idc_int.h | 2 +-
drivers/net/ethernet/intel/ice/ice_main.c | 22 +++++++++++++++-----
5 files changed, 47 insertions(+), 12 deletions(-)
trylock is clearly an antipattern, but we don't have anything better,
especially for a -net material
side note: we have resolved the same issue via rtnl_unlock()&relock()
in OOT (to be published within days), which is even worse anti-pattern
Would be best to have proper API as -next thing, glad to hear your
support on that!
side note2: I have a few fixes around the thing you touches, but no
conflicts so far, will CC you