bnx2x_func_state_change(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… bnx2x_func_state_change β€” from the Kernel API Manual ✨

okay bestie, so this one's a tiny little function page but it's literally the girl who handles Function state change transitions, and you're gonna understand her in like 30 seconds. periodt.


🌸 NAME

bnx2x_func_state_change β€” perform Function state change transition πŸ¦‹


✨ SYNOPSIS

int bnx2x_func_state_change (struct bnx2x *bp , struct
       bnx2x_func_state_params *params );

πŸŽ€ ARGUMENTS

  • bp β€” the device handle πŸ’– like, this is the bnx2x device you're talking to, hello
  • params β€” the parameters to perform the transaction ✨ everything you need to actually do the thing lives in here

πŸ”₯ DESCRIPTION

so the vibe is: you call this, and it returns 0 when the transition completed successfully β€” slay, we love a clean win πŸ’…

if it fails you get a negative error code, so like, not great, but at least she's honest 😭

and here's the little plot twist πŸ‘‘: you can also get a positive (EBUSY) value back, and that means there's a completion to that which is still pending. but ngl, that can only happen if RAMROD_COMP_WAIT is not set in params->ramrod_flags for asynchronous commands. iykyk β€” set the flag and you won't be dealing with the pending-completion jump scare πŸ™ˆ

fr fr, read that again: 0 = good, negative = bad, positive (EBUSY) = still waiting on a completion, and that last one is gated on RAMROD_COMP_WAIT not being set in params->ramrod_flags for async commands. no cap.

πŸ‘‘ SEE ALSO

first up, the kernel file this whole family lives in:

Kernel file ./drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c

and now the iconic extended universe 🌈 β€” every single one of these, because bestie we do not skip the cast list:

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_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)

okay that's the whole group chat, go say hi to all of them 🫢


and that's the page, bestie!! πŸ’œ before you close the tab: this cutie comes from the ./drivers/net/ethernet/broadco... source, dated October 2026 β€” so like, remember the version and the date when you cite her, mwah πŸŽ€β­πŸ’–

πŸ“¦ where this page comes from