netdev_wait_allrefs_any(9)
πΈ netdev_wait_allrefs_any(9) πΈ
okay so this page is straight out of the Kernel API Manual, bestie, and itβs basically the βwait until everyone finally leaves the group chatβ of network-device teardown. No cap. π
β¨ NAME β¨
netdev_wait_allrefs_any β wait until all references are gone.
π¦ SYNOPSIS π¦
struct net_device * netdev_wait_allrefs_any (struct list_head *list );
π ARGUMENTS π
listβ the list ofnet_devicesto wait on.
π DESCRIPTION π
So this one gets called when youβre unregistering network devices. Like, cleanup era has officially arrived. π§Ήβ¨
Any protocol or device that holds a reference should register for netdevice notification, and cleanup and put back the reference if they receive an UNREGISTER event. Thatβs the assignment, okay? Register, clean up, put the reference back. Donβt leave your reference lying around like a half-finished iced coffee. π
We can get stuck here if buggy protocols donβt correctly call dev_put. Get stuck as in this wait can just sit there, so if your protocol is being messy, thatβs the vibe check it failed. π
π SEE ALSO π
Kernel file ./net/core/dev.c β and the whole function-friends crew, exactly as listed:
dev_add_pack(9), __dev_remove_pack(9), dev_remove_pack(9), dev_get_iflink(9),
dev_fill_metadata_dst(9), netdev_napi_by_id_lock(9), __dev_get_by_name(9),
dev_get_by_name_rcu(9), netdev_get_by_name(9), __dev_get_by_index(9),
dev_get_by_index_rcu(9), netdev_get_by_index(9), dev_get_by_napi_id(9),
netdev_get_by_index_lock(9), netdev_get_name(9), dev_getbyhwaddr_rcu(9),
dev_getbyhwaddr(9), netdev_get_by_flags_rcu(9), dev_valid_name(9),
__dev_alloc_name(9), dev_alloc_name(9), dev_get_alias(9),
netdev_features_change(9), __netdev_notify_peers(9), netdev_notify_peers(9),
dev_disable_gro_hw(9), register_netdevice_notifier(9),
unregister_netdevice_notifier(9), register_netdevice_notifier_net(9),
unregister_netdevice_notifier_net(9), call_netdevice_notifiers_info(9),
call_netdevice_notifiers_info_robust(9), call_netdevice_notifiers(9),
call_netdevice_notifiers_mtu(9), dev_forward_skb(9), dev_nit_active_rcu(9),
netif_setup_tc(9), netif_set_real_num_rx_queues(9),
netif_set_real_num_queues(9), netif_set_tso_max_size(9),
netif_set_tso_max_segs(9), netif_inherit_tso_max(9),
netif_get_num_default_rss_queues(9), netif_device_detach(9),
netif_device_attach(9), dev_loopback_xmit(9), __dev_queue_xmit(9),
rps_flow_is_active(9), rps_may_expire_flow(9), __netif_rx(9), netif_rx(9),
netdev_is_rx_handler_busy(9), netdev_rx_handler_register(9),
netdev_rx_handler_unregister(9), netif_receive_skb_core(9),
netif_receive_skb(9), netif_receive_skb_list(9), __napi_schedule(9),
napi_schedule_prep(9), __napi_schedule_irqoff(9), netif_threaded_enable(9),
netif_queue_set_napi(9), napi_disable(9), napi_enable(9),
netdev_has_upper_dev(9), netdev_has_upper_dev_all_rcu(9),
netdev_has_any_upper_dev(9), netdev_master_upper_dev_get(9),
netdev_has_any_lower_dev(9), netdev_upper_get_next_dev_rcu(9),
netdev_lower_get_next_private(9), netdev_lower_get_next_private_rcu(9),
netdev_lower_get_next(9), netdev_lower_get_first_private_rcu(9),
netdev_master_upper_dev_get_rcu(9), netdev_upper_dev_link(9),
netdev_master_upper_dev_link(9), netdev_upper_dev_unlink(9),
netdev_bonding_info_change(9), netdev_get_xmit_slave(9),
netdev_sk_get_lowest_dev(9), netdev_lower_state_changed(9),
netif_get_flags(9), netif_set_mtu_ext(9), netif_pre_changeaddr_notify(9),
dev_get_phys_port_id(9), dev_get_phys_port_name(9),
netif_get_port_parent_id(9), netdev_port_same_parent_id(9),
netdev_change_proto_down_reason_locked(9), dev_change_xdp_fd(9),
dev_index_reserve(9), netdev_update_features(9), netdev_change_features(9),
netif_stacked_transfer_operstate(9), register_netdevice(9), register_netdev(9),
dev_get_stats(9), dev_fetch_sw_netstats(9), dev_get_tstats64(9),
netdev_sw_irq_coalesce_default_on(9), alloc_netdev_mqs(9), free_netdev(9),
alloc_netdev_dummy(9), synchronize_net(9), unregister_netdevice_queue(9),
unregister_netdevice_many(9), unregister_netdev(9),
netdev_increment_features(9), netdev_compute_master_upper_features(9),
netdev_drivername(9)
okay bye bestie π β source/version: ./net/core, date: October 2026, page: netdev_wait_allrefs_any(9). mwah π«Ά
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms