__dev_get_by_name(9)
π __dev_get_by_name(9) β like, the kernel API manual bestie β¨
okay so this is a page from the Kernel API Manual (yes, the (9) one, we're in kernel-land now π§) and it's about finding a network device by its name. short page, but honestly iconic of it.
β¨ NAME β¨
__dev_get_by_name β find a device by its name π
πΈ SYNOPSIS πΈ
struct net_device * __dev_get_by_name (struct net *net , const char *name );
that's the whole thing. no extra params, no surprises, we love a clean signature π«Ά
π¦ ARGUMENTS π¦
netβ the applicable net namespace π like, which namespace are we searching in, bestienameβ name to find π the actual string you're hunting for
β DESCRIPTION β
so the vibe here is: find an interface by name. simple. iconic. main character energy.
Must be called under RTNL semaphore. π¨ no cap, that part is not optional β this function expects you to hold it already.
if the name is found, you get a pointer to the device back π if the name is not found, you get NULL back, which is the kernel's polite way of saying "nope, didn't find it" π
and here's the part that matters, bestie: the reference counters are not incremented β not even a little β so the caller must be careful with locks π like, this function does not take a ref for you, you have to handle that yourself. it's giving "look, don't touch" energy π
π SEE ALSO π
all of these are in the kernel file ./net/core/dev.c β go off π
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_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)netdev_wait_allrefs_any(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)
like, that's a whole list. she knows everyone at the function party π
mwah π that's the page. brought to you by ./net/core, dated October 2026, and still serving kernel API realness. go hold that RTNL semaphore and slay π₯π
π¦ 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