__bnx2x_vla...write_unlock(9)
π
__bnx2x_vlan_mac_h_write_unlock β like, the Kernel API Manual page you didn't know you needed
okay bestie, so this is from the Kernel API Manual, section 9, and the page is __bnx2x_vla...write_unlock(9) (yes the title is literally truncated, that's not me being lazy, that's just how it ships π). Anyway. It's a function page, it's very short, and honestly it's giving "small but powerful main character." Let's go β¨
π NAME π
__bnx2x_vlan_mac_h_write_unlock β the function that unlocks the vlan mac head list writer lock. That's it. That's the whole job. And it does it iconically π«Ά
πΈ SYNOPSIS πΈ
void __bnx2x_vlan_mac_h_write_unlock (struct bnx2x *bp , struct
bnx2x_vlan_mac_obj *o );
yeah so it's a void β it takes two structs, it does its thing, it does not hand you a return value. No cap, zero return type, we love a function that isn't trying to give you homework π
π¦ ARGUMENTS π¦
Two args, both structs, both mandatory, both important. Let's meet them π
bpβ device handle. Like, the whole device's vibe check pass. It's astruct bnx2x *and it's how this function knows which NIC we're talking about π₯οΈoβ thevlan_macobject. Astruct bnx2x_vlan_mac_obj *, and it's the actual object being unlocked. This is the star of the show, honestly. It's got main character energy π
π₯ CONTEXT π₯
Okay this part actually matters, so pay attention bestie:
Should be called under execution queue lock.
So like β the caller has to already be holding the execution queue lock when they call this. Not optional. That's the whole setup π
And the tea β: notice if a pending execution exists, it would perform it β possibly releasing and reclaiming the execution queue lock.
So the tl;dr is that this little unlock call can, if there's a pending execution hanging out in there, go ahead and execute it. And while it's doing that, it might drop the execution queue lock and then grab it again. So if you were assuming "haha the lock is definitely still mine after this returns," bestie... it is, but it may have been on a whole little journey first ππ
β SEE ALSO β
okay so this is the part where the manpage just dumps the entire friend group on you. Every single one of these is a real reference, bestie, I'm not cutting a single one, we don't do that here π
The source file it lives in:
- Kernel file
./drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
And the whole crew: β¨
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_read_lock(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)
π§ and that's the whole page, bestie π§
fr fr that's it β small page, big responsibility. It's from ./drivers/net/ethernet/broadco... (yes, also truncated, the manpage generator was going through something π), dated October 2026, and it lives in the Kernel API Manual at section 9 as __bnx2x_vla...write_unlock(9). 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