linux/drivers/net
Jakub Kicinski b6197b3866 Reapply "bnxt_en: bring back rtnl_lock() in the bnxt_open() path"
This reverts commit 850d9248d2.
This reapplies commit 325eb217e4 ("bnxt_en: bring back rtnl_lock()
in the bnxt_open() path").

Breno reports a lockdep warning in bnxt. During FW reset the driver
may end up calling netif_set_real_num_tx_queues() (if queue count
changes), so calls to bnxt_open() still require rtnl_lock.

  net/sched/sch_generic.c:1416 suspicious rcu_dereference_protected() usage!

   dev_qdisc_change_real_num_tx+0x54/0xe0
   netif_set_real_num_tx_queues+0x4ed/0xa80
   __bnxt_open_nic+0x9cb/0x3490
   bnxt_open+0x1cb/0x370
   bnxt_fw_reset_task+0x80d/0x1e80
   process_scheduled_works+0x9c1/0x13b0

The reverted commit was just an optimization / experiment
so let's go back to taking the lock.

Reported-by: Breno Leitao <leitao@debian.org>
Link: https://lore.kernel.org/ah726OtFX-Qw3U-R@gmail.com
Fixes: 850d9248d2 ("Revert "bnxt_en: bring back rtnl_lock() in the bnxt_open() path"")
Acked-by: Stanislav Fomichev <sdf@fomichev.me>
Reviewed-by: Michael Chan <michael.chan@broadcom.com>
Reviewed-by: Breno Leitao <leitao@debian.org>
Link: https://patch.msgid.link/20260603195845.2574426-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-06-04 09:02:37 -07:00
..
arcnet Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
bonding bonding: annotate data-races arcound churn variables 2026-06-04 08:58:18 -07:00
can Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2026-04-14 12:04:00 -07:00
dsa net: dsa: mt7530: untag VLAN-aware bridge PVID 2026-05-19 12:37:34 +02:00
ethernet Reapply "bnxt_en: bring back rtnl_lock() in the bnxt_open() path" 2026-06-04 09:02:37 -07:00
fddi FDDI: defza: Sanitise the reset safety timer 2026-05-13 17:31:01 -07:00
fjes net: fjes: Drop fjes_acpi_driver and rework initialization 2026-03-19 17:20:55 -07:00
hyperv Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
ieee802154 ieee802154: atusb: drop redundant device reference 2026-03-23 17:35:28 -07:00
ipa Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2026-04-14 12:04:00 -07:00
ipvlan Networking changes for 7.1. 2026-04-14 18:36:10 -07:00
mctp net: mctp i2c: check length before marking flow active 2026-04-28 13:11:53 +02:00
mdio net: mdio: MDIO_PIC64HPSC should depend on ARCH_MICROCHIP 2026-04-16 19:04:58 -07:00
netdevsim netdevsim: psp: rcu protect psp_dev reference 2026-05-06 17:39:20 -07:00
ovpn ovpn: disable BHs when updating device stats 2026-05-15 00:43:55 +02:00
pcs net: pcs: pcs-mtk-lynxi: fix bpi-r3 serdes configuration 2026-05-28 18:09:03 -07:00
phy net: sfp: initialize i2c_block_size at adapter configure time 2026-06-03 17:57:31 -07:00
plip
ppp pppoe: drop PFC frames 2026-04-20 11:35:17 -07:00
pse-pd net: pse-pd: fix sign on -ENOENT check in of_load_pse_pis() 2026-05-19 17:44:27 -07:00
slip slip: bound decode() reads against the compressed packet length 2026-04-21 10:18:18 +02:00
team net: team: fix NULL pointer dereference in team_xmit during mode change 2026-05-26 10:49:16 +02:00
thunderbolt net: thunderbolt: Allow reading link settings 2026-01-19 12:09:58 -08:00
usb net: usb: asix: ax88772: re-add usbnet_link_change() in phylink callbacks 2026-05-04 19:04:15 -07:00
vmxnet3 vmxnet3: Suppress page allocation warning for massive Rx Data ring 2026-02-27 18:36:45 -08:00
vxlan vxlan: vnifilter: fix spurious notification on VNI update 2026-06-04 08:47:45 -07:00
wan net: wan: fsl_ucc_hdlc: free tx_skbuff in uhdlc_memclean 2026-05-08 18:48:30 -07:00
wireguard wireguard: send: append trailer after expanding head 2026-05-29 13:01:27 -07:00
wireless wifi: iwlwifi: pcie: simplify the resume flow if fast resume is not used 2026-05-31 17:07:11 +03:00
wwan net: wwan: iosm: fix potential memory leaks in ipc_imem_init() 2026-05-21 08:06:02 -07:00
xen-netback Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
amt.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
bareudp.c bareudp: fix NULL pointer dereference in bareudp_fill_metadata_dst() 2026-04-28 18:16:53 -07:00
dummy.c dummy: convert to ndo_set_rx_mode_async 2026-04-21 12:50:25 +02:00
eql.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
geneve.c geneve: fix length used in GRO hint UDP checksum adjustment 2026-06-04 10:48:46 +02:00
gtp.c gtp: disable BH before calling udp_tunnel_xmit_skb() 2026-04-20 11:46:24 -07:00
ifb.c net: ifb: report ethtool stats over num_tx_queues 2026-05-14 18:40:04 -07:00
Kconfig caif: remove CAIF NETWORK LAYER 2026-04-23 10:23:44 -07:00
LICENSE.SRC
loopback.c
macsec.c macsec: fix replay protection at XPN lower-PN wrap 2026-05-25 12:40:47 -07:00
macvlan.c macvlan: fix macvlan_get_size() not reserving space for IFLA_MACVLAN_BC_CUTOFF 2026-04-16 12:17:11 +02:00
macvtap.c kernfs: pass struct ns_common instead of const void * for namespace tags 2026-04-09 14:36:52 +02:00
Makefile net: remove ax25 and amateur radio (hamradio) subsystem 2026-04-23 10:24:02 -07:00
mdio.c
mhi_net.c
mii.c
net_failover.c net: net_failover: Fix the deadlock in slave register 2026-05-13 19:01:03 -07:00
netconsole.c netconsole: restore userdatum value on update_userdata() failure 2026-04-28 18:28:12 -07:00
netkit.c netkit: convert to ndo_set_rx_mode_async 2026-04-21 12:50:25 +02:00
nlmon.c
ntb_netdev.c net: ntb_netdev: add SPDX tag and remove boilerplate license text 2026-03-19 17:17:32 -07:00
pfcp.c
rionet.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
Space.c drivers: net: 8390: wd80x3: Remove this driver 2026-04-23 15:57:10 -07:00
sungem_phy.c
tap.c tap: free page on error paths in tap_get_user_xdp() 2026-05-22 10:08:59 -07:00
tun_vnet.h virtio-net: correct hdr_len handling for VIRTIO_NET_F_GUEST_HDRLEN 2026-03-24 11:12:07 +01:00
tun.c tun: free page on build_skb failure in tun_xdp_one() 2026-05-22 10:10:07 -07:00
veth.c veth: fix OOB txq access in veth_poll() with asymmetric queue counts 2026-05-07 16:24:07 +02:00
virtio_net.c virtio_net: sync rss_trailer.max_tx_vq on queue_pairs change via VQ_PAIRS_SET 2026-04-23 09:35:53 -07:00
vrf.c vrf: Fix a potential NPD when removing a port from a VRF 2026-04-27 17:43:22 -07:00
vsockmon.c
xen-netfront.c xen: branch for v7.0-rc3 2026-03-07 07:44:32 -08:00