iavf_addr_sync(9)
π iavf_addr_sync(9) π
okay so welcome to the Kernel API Manual, bestie β section 9, the one where all the driver-internals lore lives. this page is the whole personality of iavf_addr_sync, and honestly? it's giving "small function, big responsibilities." let's get into it π
β¨ NAME β¨
iavf_addr_sync β the callback that dev_(mc|uc)_sync hits when it needs to add an address. yep, that's the whole job description and she owns it π
πΈ SYNOPSIS πΈ
int iavf_addr_sync (struct net_device *netdev , const u8 *addr );
like, that's the whole signature. two arguments, one int coming back at you. no cap, it's that simple π¦
π«Ά ARGUMENTS π«Ά
netdevβ the netdevice. the main character of this whole operation, fr fr.addrβ the address to add. this is the thing she's actually here to do something with π
π₯ DESCRIPTION π₯
okay so here's the lore: this gets called by __dev_(mc|uc)_sync when an address needs to be added. that's the trigger. that's when our girl gets the ping π²
and then β the part that's lowkey iconic β we call __dev_(uc|mc)_sync from .set_rx_mode, and we guarantee to hold the hash lock. read that again. guaranteed. in writing. the hash lock is held, no cap, that's the whole deal πβ¨
note the beautiful symmetry going on:mcthenucon the way in,ucthenmcon the way out. it's mirrored. it's a vibe. iykyk π«
π¦ SEE ALSO π¦
first up, the source of all truth, the kernel file herself:
./drivers/net/ethernet/intel/iavf/iavf_main.c
and now the extended universe β yes, all of it, every single one, because we do not skip entries in this house π:
iavf_pdev_to_adapter(9)iavf_is_reset_in_progress(9)iavf_allocate_dma_mem_d(9)iavf_free_dma_mem(9)iavf_allocate_virt_mem(9)iavf_free_virt_mem(9)iavf_schedule_reset(9)iavf_schedule_aq_request(9)iavf_tx_timeout(9)iavf_misc_irq_disable(9)iavf_misc_irq_enable(9)iavf_irq_disable(9)iavf_irq_enable_queues(9)iavf_irq_enable(9)iavf_msix_aq(9)iavf_msix_clean_rings(9)iavf_map_vector_to_rxq(9)iavf_map_vector_to_txq(9)iavf_map_rings_to_vectors(9)iavf_request_traffic_irqs(9)iavf_request_misc_irq(9)iavf_free_traffic_irqs(9)iavf_free_misc_irq(9)iavf_configure_tx(9)iavf_select_rx_desc_format(9)iavf_configure_rx(9)iavf_find_vlan(9)iavf_add_vlan(9)iavf_del_vlan(9)iavf_get_num_vlans_added(9)iavf_get_max_vlans_allowed(9)iavf_max_vlans_added(9)iavf_vlan_rx_add_vid(9)iavf_vlan_rx_kill_vid(9)iavf_find_filter(9)iavf_add_filter(9)iavf_replace_primary_mac(9)iavf_is_mac_set_handled(9)iavf_mac_change_done(9)iavf_set_mac_sync(9)iavf_set_mac(9)iavf_addr_unsync(9)iavf_promiscuous_mode_changed(9)iavf_set_rx_mode(9)iavf_napi_enable_all(9)iavf_napi_disable_all(9)iavf_configure(9)iavf_up_complete(9)iavf_clear_mac_filters(9)iavf_clear_cloud_filters(9)iavf_clear_fdir_filters(9)iavf_clear_adv_rss_conf(9)iavf_down(9)iavf_acquire_msix_vectors(9)iavf_free_queues(9)iavf_set_queue_vlan_tag_loc(9)iavf_alloc_queues(9)iavf_set_interrupt_capability(9)iavf_config_rss_aq(9)iavf_config_rss_reg(9)iavf_config_rss(9)iavf_fill_rss_lut(9)iavf_init_rss(9)iavf_alloc_q_vectors(9)iavf_free_q_vectors(9)iavf_reset_interrupt_capability(9)iavf_init_interrupt_scheme(9)iavf_free_interrupt_scheme(9)iavf_free_rss(9)iavf_reinit_interrupt_scheme(9)iavf_finish_config(9)iavf_schedule_finish_config(9)iavf_process_aq_command(9)iavf_set_vlan_offload_features(9)iavf_startup(9)iavf_init_version_check(9)iavf_parse_vf_resource_msg(9)iavf_init_get_resources(9)iavf_init_send_offload_vlan_v2_caps(9)iavf_init_recv_offload_vlan_v2_caps(9)iavf_init_send_supported_rxdids(9)iavf_init_recv_supported_rxdids(9)iavf_init_send_ptp_caps(9)iavf_init_recv_ptp_caps(9)iavf_init_process_extended_caps(9)iavf_init_config_adapter(9)iavf_disable_vf(9)iavf_reconfig_qs_bw(9)iavf_reset_step(9)iavf_adminq_task(9)iavf_free_all_tx_resources(9)iavf_setup_all_tx_resources(9)iavf_setup_all_rx_resources(9)iavf_free_all_rx_resources(9)iavf_validate_tx_bandwidth(9)iavf_validate_ch_config(9)iavf_del_all_cloud_filters(9)iavf_is_tc_config_same(9)__iavf_setup_tc(9)iavf_parse_cls_flower(9)iavf_handle_tclass(9)iavf_find_cf(9)iavf_configure_clsflower(9)iavf_delete_clsflower(9)iavf_setup_tc_cls_flower(9)iavf_add_cls_u32(9)iavf_del_cls_u32(9)iavf_setup_tc_cls_u32(9)iavf_setup_tc_block_cb(9)iavf_setup_tc(9)iavf_restore_fdir_filters(9)iavf_open(9)iavf_close(9)iavf_change_mtu(9)iavf_disable_fdir(9)iavf_set_features(9)iavf_features_check(9)iavf_get_netdev_vlan_hw_features(9)iavf_get_netdev_vlan_features(9)iavf_fix_netdev_vlan_features(9)iavf_fix_strip_features(9)iavf_fix_features(9)iavf_check_reset_complete(9)iavf_process_config(9)iavf_probe(9)iavf_suspend(9)iavf_resume(9)iavf_remove(9)iavf_shutdown(9)iavf_init_module(9)iavf_exit_module(9)
like, that's the entire friend group. go read all of them. or at least the ones adjacent to iavf_addr_unsync(9) β she's literally the mirror twin, obsessed with her ππ
and that's the page, bestie!! π«Ά this little gem ships out of ./drivers/net/ethernet/intel/iavf, stamped October 2026, and it's gonna live in your head rent free every time __dev_(mc|uc)_sync comes knocking. slay, stay locked, stay hydrated, 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