bnx2x_vlan_mac_h_read_lock(9)
π bnx2x_vlan_mac_h_read_lock β the Kernel API Manual told me to gatekeep this one so buckle up bestie
okay so like. hi. you're here for bnx2x_vlan_mac_h_read_lock from the Kernel API Manual and honestly? iconic of you. this is the lil function that grabs the read lock on the vlan mac head list, and the way that it does it is lowkey so clean. let's get into it π
β¨ NAME β¨
bnx2x_vlan_mac_h_read_lock β locks the vlan mac head list reader lock, no cap, that's literally the whole job π«Ά
πΈ SYNOPSIS πΈ
int bnx2x_vlan_mac_h_read_lock (struct bnx2x *bp , struct
bnx2x_vlan_mac_obj *o );
she takes two things and she returns an int, periodt. the way the signature wraps all awkwardly across two lines is giving "written by someone who ran out of column width," and honestly? relatable π
π ARGUMENTS π
bpβ the device handle. your actual chip, your actual vibes. this is thestruct bnx2x *and she is the main character here πoβ thevlan_macobject. this is the one getting the read lock treatment β¨
π¦ CONTEXT π¦
this one may sleep π΄ β so do NOT call her from atomic context, bestie, i'm serious, that's not a vibe check you want to fail. and plot twist: she claims and releases the execution queue lock during her run, which is genuinely so much for one function to be doing ngl π
π SEE ALSO π
the kernel file where this lives, for when you wanna read the source like the little scholar you are π
./drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
and now, the moment you've all been waiting for: the entire friend group, the whole group chat, everybody in the bnx2x_sp.c extended universe π₯
bnx2x_exe_queue_init(9)bnx2x_exe_queue_add(9)bnx2x_exe_queue_step(9)bnx2x_state_wait(9)__bnx2x_vlan_mac_h_write_trylock(9)__bnx2x_vlan_mac_h_exec_pending(9)__bnx2x_vlan_mac_h_pend(9)__bnx2x_vlan_mac_h_write_unlock(9)__bnx2x_vlan_mac_h_read_lock(9)__bnx2x_vlan_mac_h_read_unlock(9)bnx2x_vlan_mac_h_read_unlock(9)bnx2x_vlan_mac_set_cmd_hdr_e2(9)bnx2x_vlan_mac_set_rdata_hdr_e2(9)bnx2x_vlan_mac_set_rdata_hdr_e1x(9)bnx2x_set_one_mac_e1x(9)bnx2x_set_one_vlan_mac_e1h(9)bnx2x_vlan_mac_restore(9)bnx2x_validate_vlan_mac_add(9)bnx2x_validate_vlan_mac_del(9)bnx2x_validate_vlan_mac_move(9)bnx2x_wait_vlan_mac(9)bnx2x_complete_vlan_mac(9)bnx2x_optimize_vlan_mac(9)bnx2x_vlan_mac_get_registry_elem(9)bnx2x_execute_vlan_mac(9)bnx2x_config_vlan_mac(9)bnx2x_vlan_mac_del_all(9)bnx2x_mcast_get_next_bin(9)bnx2x_mcast_clear_first_bin(9)bnx2x_mcast_handle_restore_cmd_e2(9)bnx2x_mcast_handle_current_cmd(9)bnx2x_mcast_set_rdata_hdr_e2(9)bnx2x_mcast_refresh_registry_e2(9)bnx2x_mcast_set_rdata_hdr_e1(9)bnx2x_mcast_handle_restore_cmd_e1(9)bnx2x_get_fw_mac_addr(9)bnx2x_mcast_refresh_registry_e1(9)__atomic_add_ifless(9)__atomic_dec_ifmoe(9)bnx2x_init_credit_pool(9)bnx2x_debug_print_ind_table(9)bnx2x_setup_rss(9)bnx2x_queue_state_change(9)bnx2x_queue_comp_cmd(9)bnx2x_q_init(9)bnx2x_q_send_deactivate(9)bnx2x_q_send_activate(9)bnx2x_queue_chk_transition(9)bnx2x_func_state_change_comp(9)bnx2x_func_comp_cmd(9)bnx2x_func_chk_transition(9)bnx2x_func_init_func(9)bnx2x_func_init_port(9)bnx2x_func_init_cmn_chip(9)bnx2x_func_init_cmn(9)bnx2x_func_reset_func(9)bnx2x_func_reset_port(9)bnx2x_func_reset_cmn(9)bnx2x_func_state_change(9)
no bestie i did NOT skip any of them, every single one made the list, we don't do gatekeeping in this house π
ok so quick recap for the girlies in the back:bnx2x_vlan_mac_h_read_locktakesbpando, returns anint, may sleep, and claims + releases the execution queue lock while she's running. lock it up, unlock it later, stay hydrated π§
that's the whole page!! mwah π this lil slice of the Kernel API Manual was brought to you by the kernel file ./drivers/net/ethernet/broadco... and dated October 2026 β see you in the next (9) section, love u, bye π§π
π¦ 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