linux/net/core
Stanislav Fomichev cae03e5bdd net: hold netdev instance lock during queue operations
For the drivers that use queue management API, switch to the mode where
core stack holds the netdev instance lock. This affects the following
drivers:
- bnxt
- gve
- netdevsim

Originally I locked only start/stop, but switched to holding the
lock over all iterations to make them look atomic to the device
(feels like it should be easier to reason about).

Reviewed-by: Eric Dumazet <edumazet@google.com>
Cc: Saeed Mahameed <saeed@kernel.org>
Signed-off-by: Stanislav Fomichev <sdf@fomichev.me>
Link: https://patch.msgid.link/20250305163732.2766420-6-sdf@fomichev.me
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-03-06 12:59:43 -08:00
..
bpf_sk_storage.c bpf: Remove unnecessary BTF lookups in bpf_sk_storage_tracing_allowed 2025-01-29 08:51:51 -08:00
datagram.c net: add support for skbs with unreadable frags 2024-09-11 20:44:31 -07:00
dev_addr_lists_test.c net: dev_addr_lists: move locking out of init/exit in kunit 2024-04-15 10:26:35 +01:00
dev_addr_lists.c net: ti: icssg-prueth: Add Multicast Filtering support for VLAN in MAC mode 2025-01-14 12:17:27 +01:00
dev_ioctl.c dev: Hold rtnl_net_lock() for dev_ifsioc(). 2025-01-16 17:20:50 -08:00
dev.c net: hold netdev instance lock during nft ndo_setup_tc 2025-03-06 12:59:43 -08:00
dev.h net: hold netdev instance lock during ndo_open/ndo_stop 2025-03-06 12:59:43 -08:00
devmem.c net: prepare for non devmem TCP memory providers 2025-02-06 16:27:31 -08:00
devmem.h net: prepare for non devmem TCP memory providers 2025-02-06 16:27:31 -08:00
drop_monitor.c drop_monitor: fix incorrect initialization order 2025-02-17 16:35:55 -08:00
dst_cache.c net: dst_cache: add two DEBUG_NET warnings 2024-06-03 18:50:09 -07:00
dst.c net: Add options as a flexible array to struct ip_tunnel_info 2025-02-20 13:17:16 -08:00
failover.c
fib_notifier.c net: do not acquire rtnl in fib_seq_sum() 2024-10-11 15:35:05 -07:00
fib_rules.c net: fib_rules: Enable DSCP mask usage 2025-02-21 16:08:48 -08:00
filter.c bpf: Support selective sampling for bpf timestamping 2025-02-20 14:30:02 -08:00
flow_dissector.c net: remove '__' from __skb_flow_get_ports() 2025-02-24 14:27:53 -08:00
flow_offload.c
gen_estimator.c net: use unrcu_pointer() helper 2024-06-06 11:52:52 +02:00
gen_stats.c
gro_cells.c net: move netdev_max_backlog to net_hotdata 2024-03-07 21:12:42 -08:00
gro.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-02-27 10:20:58 -08:00
gso.c net: introduce struct net_hotdata 2024-03-07 21:12:41 -08:00
hotdata.c net: move sysctl_mem_pcpu_rsv to net_hotdata 2024-04-30 18:46:52 -07:00
hwbm.c
ieee8021q_helpers.c net: add IEEE 802.1q specific helpers 2024-05-08 10:35:09 +01:00
link_watch.c ipvlan: Fix use-after-free in ipvlan_get_iflink(). 2025-01-07 17:50:49 -08:00
lwt_bpf.c bpf: lwtunnel: Prepare bpf_lwt_xmit_reroute() to future .flowi4_tos conversion. 2024-11-14 19:07:49 -08:00
lwtunnel.c inet: fix lwtunnel_valid_encap_type() lock imbalance 2025-03-05 19:16:56 -08:00
Makefile net: Implement fault injection forcing skb reallocation 2024-11-12 12:05:33 +01:00
mp_dmabuf_devmem.h memory-provider: dmabuf devmem memory provider 2024-09-11 20:44:31 -07:00
neighbour.c neighbour: Replace kvzalloc() with kzalloc() when GFP_ATOMIC is specified 2025-02-20 17:28:01 -08:00
net_namespace.c net: Add net_passive_inc() and net_passive_dec(). 2025-02-18 18:33:29 -08:00
net_test.c pfcp: always set pfcp metadata 2024-04-01 10:49:28 +01:00
net-procfs.c net: make softnet_data.dropped an atomic_t 2024-04-01 11:28:32 +01:00
net-sysfs.c net-sysfs: remove unused initial ret values 2025-02-27 17:38:42 -08:00
net-sysfs.h
net-traces.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
netclassid_cgroup.c
netdev_rx_queue.c net: hold netdev instance lock during queue operations 2025-03-06 12:59:43 -08:00
netdev-genl-gen.c netdev: avoid CFI problems with sock priv helpers 2025-01-16 13:15:40 +01:00
netdev-genl-gen.h netdev-genl: Support setting per-NAPI config values 2024-10-14 17:54:29 -07:00
netdev-genl.c bpf-next-for-netdev 2025-02-21 15:59:47 -08:00
netevent.c
netmem_priv.h page_pool: devmem support 2024-09-11 20:44:31 -07:00
netpoll.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-01-16 10:34:59 -08:00
netprio_cgroup.c
of_net.c
page_pool_priv.h net: page_pool: don't try to stash the napi id 2025-01-27 14:37:41 -08:00
page_pool_user.c net: use napi_id_valid helper 2025-02-17 16:43:04 -08:00
page_pool.c page_pool: avoid infinite loop to schedule delayed worker 2025-02-18 12:48:29 +01:00
pktgen.c net: pktgen: remove all superfluous index assignements 2025-03-04 10:57:58 +01:00
ptp_classifier.c
request_sock.c tcp: make sure init the accept_queue's spinlocks once 2024-01-19 21:13:25 -08:00
rtnetlink.c net: plumb extack in __dev_change_net_namespace() 2025-03-04 12:44:48 +01:00
rtnl_net_debug.c dev: Hold rtnl_net_lock() for dev_ifsioc(). 2025-01-16 17:20:50 -08:00
scm.c tcp: devmem: don't write truncated dmabuf CMSGs to userspace 2025-02-25 18:15:43 -08:00
secure_seq.c tcp: use EXPORT_IPV6_MOD[_GPL]() 2025-02-14 13:09:39 -08:00
selftests.c net: fill in MODULE_DESCRIPTION()s under net/core 2023-10-28 11:29:27 +01:00
skb_fault_injection.c net: Implement fault injection forcing skb reallocation 2024-11-12 12:05:33 +01:00
skbuff.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-02-27 10:20:58 -08:00
skmsg.c bpf: Fix wrong copied_seq calculation 2025-01-29 13:32:23 -08:00
sock_destructor.h
sock_diag.c net: use unrcu_pointer() helper 2024-06-06 11:52:52 +02:00
sock_map.c BPF fixes: 2025-02-20 15:37:17 -08:00
sock_reuseport.c net: core: annotate socks of struct sock_reuseport with __counted_by 2024-08-02 17:16:59 -07:00
sock.c sock: add sock_kmemdup helper 2025-03-03 17:16:34 -08:00
stream.c net: Return error from sk_stream_wait_connect() if sk_wait_event() fails 2023-12-15 10:48:51 +00:00
sysctl_net_core.c net: set the minimum for net_hotdata.netdev_budget_usecs 2025-02-21 16:27:54 -08:00
timestamping.c net: Add the possibility to support a selected hwtstamp in netdevice 2024-12-16 12:51:40 +00:00
tso.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
utils.c net: Correct spelling in net/core 2024-08-26 09:37:23 -07:00
xdp.c xdp: remove xdp_alloc_skb_bulk() 2025-02-27 14:03:52 +01:00