lpfc_bsg_issue_mbox_cmpl(9)
π lpfc_bsg_issue_mbox_cmpl π
okay bestie, welcome to the Kernel API Manual entry for lpfc_bsg_issue_mbox_cmpl β yes that's a mouthful, no we're not abbreviating it, it's iconic exactly as it is π
β¨ NAME β¨
lpfc_bsg_issue_mbox_cmpl β literally the mbox completion handler for lpfc_bsg_issue_mbox, that's the whole vibe π¦
πΈ SYNOPSIS πΈ
void lpfc_bsg_issue_mbox_cmpl (struct lpfc_hba *phba , LPFC_MBOXQ_t
*pmboxq );
that's it. that's the signature. she takes two pointers and returns nothing, and honestly? slay π
π«Ά ARGUMENTS π«Ά
phbaβ pointer to the HBA context object. your main character struct, the whole context, the passport πpmboxqβ pointer to the mailbox command. the actual mboxq in question, the little guy being completed β¨
π DESCRIPTION π
so here's the tea, bestie β β this is the completion handler function for mailbox commands that get issued from the lpfc_bsg_issue_mbox function. like, when the mailbox thing finishes, this is who shows up to the party π
it gets called by the mailbox event handler function with no lock held β no cap, that's a real detail, remember it. no lock. held. zero. π
and what does she actually do? the way that she literally just wakes up the thread waiting on the wait queue pointed by dd_data of the mailbox. that's the job. wake the thread, hand it the good news, move on. lowkey humble of her tbh π
π₯ SEE ALSO π₯
the kernel file herself:
./drivers/scsi/lpfc/lpfc_bsg.c
and now the entire extended friend group, everyone's invited, nobody gets left out π:
lpfc_bsg_send_mgmt_cmd_cmp(9)lpfc_bsg_send_mgmt_cmd(9)lpfc_bsg_rport_els_cmp(9)lpfc_bsg_rport_els(9)lpfc_bsg_event_free(9)lpfc_bsg_event_ref(9)lpfc_bsg_event_unref(9)lpfc_bsg_event_new(9)diag_cmd_data_free(9)lpfc_bsg_ct_unsol_abort(9)lpfc_bsg_hba_set_event(9)lpfc_bsg_hba_get_event(9)lpfc_issue_ct_rsp_cmp(9)lpfc_issue_ct_rsp(9)lpfc_bsg_send_mgmt_rsp(9)lpfc_bsg_diag_mode_enter(9)lpfc_bsg_diag_mode_exit(9)lpfc_sli3_bsg_diag_loopback_mode(9)lpfc_sli4_bsg_set_link_diag_state(9)lpfc_sli4_bsg_set_loopback_mode(9)lpfc_sli4_diag_fcport_reg_setup(9)lpfc_sli4_bsg_diag_loopback_mode(9)lpfc_bsg_diag_loopback_mode(9)lpfc_sli4_bsg_diag_mode_end(9)lpfc_sli4_bsg_link_diag_test(9)lpfcdiag_loop_self_reg(9)lpfcdiag_loop_self_unreg(9)lpfcdiag_loop_get_xri(9)lpfc_bsg_dma_page_alloc(9)lpfc_bsg_dma_page_free(9)lpfc_bsg_dma_page_list_free(9)diag_cmd_data_alloc(9)lpfcdiag_sli3_loop_post_rxbufs(9)lpfc_bsg_diag_loopback_run(9)lpfc_bsg_get_dfc_rev(9)lpfc_bsg_check_cmd_access(9)lpfc_bsg_mbox_ext_session_reset(9)lpfc_rd_obj_emb0_handle_job(9)lpfc_bsg_issue_mbox_ext_handle_job(9)lpfc_bsg_issue_read_mbox_ext_cmpl(9)lpfc_bsg_issue_write_mbox_ext_cmpl(9)lpfc_bsg_sli_cfg_read_cmd_ext(9)lpfc_bsg_sli_cfg_write_cmd_ext(9)lpfc_bsg_handle_sli_cfg_mbox(9)lpfc_bsg_mbox_ext_abort(9)lpfc_bsg_read_ebuf_get(9)lpfc_bsg_write_ebuf_set(9)lpfc_bsg_handle_sli_cfg_ebuf(9)lpfc_bsg_handle_sli_cfg_ext(9)lpfc_bsg_issue_mbox(9)lpfc_bsg_mbox_cmd(9)lpfc_check_fwlog_support(9)lpfc_bsg_get_ras_config(9)lpfc_bsg_set_ras_config(9)lpfc_bsg_get_ras_lwpd(9)lpfc_bsg_get_ras_fwlog(9)lpfc_bsg_hst_vendor(9)lpfc_bsg_request(9)lpfc_bsg_timeout(9)
and that's the whole page bestie, ate and left no crumbs π
so basically: this page lives in ./drivers/scsi/lpfc, dated October 2026, and it's the lpfc_bsg_issue_mbox_cmpl(9) entry β go wake your threads, take no locks, and stan a completion handler who does exactly one thing and does it well π
πβ¨
π¦ 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