qed_recovery_prolog(9)
π qed_recovery_prolog(9) β bestie's field guide
okay so this page lives in the Kernel API Manual, section 9 (the kernel-API girlies, you know the ones β¨). Pull up a chair, we're talking about the very first thing your recovery handler has to do. no cap. π«Ά
πΈ NAME πΈ
qed_recovery_prolog β a recovery handler must call this function as its first step. like, step one, before anything else, no negotiating π
. and bestie, it's assumed that the handler is not run from an interrupt context. so don't come at it from interrupt land, that's not the vibe it was built for π«β‘
π SYNOPSIS π
int qed_recovery_prolog (struct qed_dev *cdev );
that's it. that's the whole call. iconic minimalism π
π¦ ARGUMENTS π¦
cdevβ the Qed dev pointer. yes, that one. hand it over and let it cook π
β RETURN β
int. that's literally the whole documented return type β int, periodt. no extra lore, no secret second value, nothing hidden. just an int doing its little int thing π
π SEE ALSO π
the source of truth herself lives in the kernel file:
./drivers/net/ethernet/qlogic/qed/qed_mcp.h
and omg the friend group is huge. like genuinely enormous. iykyk. every single one of these is linked below, in the exact order they were handed to me, no skipping, no merging, no "eh that one's boring" β we respect all of them equally π«‘
the link-params-and-state girlies:
qed_mcp_get_link_params(9)qed_mcp_get_link_state(9)qed_mcp_get_link_capabilities(9)qed_mcp_set_link(9)qed_mcp_get_mfw_ver(9)qed_mcp_get_mbi_ver(9)qed_mcp_get_media_type(9)qed_mcp_get_transceiver_data(9)qed_mcp_trans_speed_mask(9)qed_mcp_get_board_config(9)
the command-and-drain crew:
qed_mcp_cmd(9)qed_mcp_cmd_nosleep(9)qed_mcp_drain(9)qed_mcp_get_flash_size(9)qed_mcp_send_drv_version(9)
the recovery/main-character section (yes this is us π₯):
the override update girlies:
qed_mcp_ov_update_current_config(9)qed_mcp_ov_update_driver_state(9)qed_mcp_ov_update_mtu(9)qed_mcp_ov_update_mac(9)qed_mcp_ov_update_wol(9)qed_mcp_set_led(9)
the NVM girls (they never sleep π):
qed_mcp_nvm_read(9)qed_mcp_nvm_write(9)qed_mcp_nvm_resp(9)qed_mcp_get_nvm_image_att(9)qed_mcp_get_nvm_image(9)
the BIST squad:
qed_mcp_bist_register_test(9)qed_mcp_bist_clock_test(9)qed_mcp_bist_nvm_get_num_images(9)qed_mcp_bist_nvm_get_image_att(9)
the TLV + debug + speed-check trio:
init / free / events / load-unload β the lifecycle besties π:
qed_mcp_cmd_init(9)qed_mcp_cmd_port_init(9)qed_mcp_free(9)qed_mcp_handle_events(9)qed_mcp_load_req(9)qed_mcp_load_done(9)qed_mcp_unload_req(9)qed_mcp_unload_done(9)qed_mcp_read_mb(9)qed_mcp_ack_vf_flr(9)qed_mcp_fill_shmem_func_info(9)qed_mcp_reset(9)qed_mcp_nvm_rd_cmd(9)qed_mcp_phy_sfp_read(9)qed_mcp_is_init(9)qed_mcp_config_vf_msix(9)qed_mcp_halt(9)qed_mcp_resume(9)
resources + flr + eswitch energy π§:
qed_mcp_set_resc_max_val(9)qed_mcp_get_resc_info(9)qed_mcp_ov_update_eswitch(9)qed_mcp_initiate_pf_flr(9)qed_mcp_resc_lock(9)qed_mcp_resc_unlock(9)qed_mcp_resc_lock_default_init(9)
capabilities & smart AN (she's smart, she's an, she's supported):
qed_mcp_is_smart_an_supported(9)qed_mcp_get_capabilities(9)qed_mcp_set_capabilities(9)qed_mcp_read_ufp_config(9)
nvm info populate/free, because balance β¨:
engine config + ppfid bitmap β the deep lore π:
nvm cfg getters and setters, a matched set slay π :
and finally the ESL girlies, closing us out πΈ:
real talk bestie: the one rule that actually matters here is call it first. recovery handler, first step, qed_recovery_prolog. and it is assumed you're not in an interrupt context. that's the whole assignment π
and that's the page!! source/version vibes: ./drivers/net/ethernet/qlogic/qed, dated October 2026, filed under qed_recovery_prolog(9) in the Kernel API Manual (section 9). go call it first, bestie, you're gonna ate πβ¨π
π¦ 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