]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ice: drop udp_tunnel_get_rx_info() call from ndo_open()
authorMohammad Heib <mheib@redhat.com>
Sun, 28 Dec 2025 19:40:21 +0000 (21:40 +0200)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Fri, 30 Jan 2026 17:08:06 +0000 (09:08 -0800)
The ice driver calls udp_tunnel_get_rx_info() during ice_open_internal().
This is redundant because UDP tunnel RX offload state is preserved
across device down/up cycles. The udp_tunnel core handles
synchronization automatically when required.

Furthermore, recent changes in the udp_tunnel infrastructure require
querying RX info while holding the udp_tunnel lock. Calling it
directly from the ndo_open path violates this requirement,
triggering the following lockdep warning:

Call Trace:
  <TASK>
  ice_open_internal+0x253/0x350 [ice]
  __udp_tunnel_nic_assert_locked+0x86/0xb0 [udp_tunnel]
  __dev_open+0x2f5/0x880
  __dev_change_flags+0x44c/0x660
  netif_change_flags+0x80/0x160
  devinet_ioctl+0xd21/0x15f0
  inet_ioctl+0x311/0x350
  sock_ioctl+0x114/0x220
  __x64_sys_ioctl+0x131/0x1a0
  ...
  </TASK>

Remove the redundant and unsafe call to udp_tunnel_get_rx_info() from
ice_open_internal() to resolve the locking violation

Fixes: 1ead7501094c ("udp_tunnel: remove rtnl_lock dependency")
Signed-off-by: Mohammad Heib <mheib@redhat.com>
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/ice/ice_main.c

index c1033070d0c7a78889847a38a09b77d14b26f897..d04605d3e61af1a65ee9c11f0662b4b38f4593a9 100644 (file)
@@ -9662,9 +9662,6 @@ int ice_open_internal(struct net_device *netdev)
                netdev_err(netdev, "Failed to open VSI 0x%04X on switch 0x%04X\n",
                           vsi->vsi_num, vsi->vsw->sw_id);
 
-       /* Update existing tunnels information */
-       udp_tunnel_get_rx_info(netdev);
-
        return err;
 }