lpfc_bsg_diag_loopback_run(9)
π lpfc_bsg_diag_loopback_run(9) π
okay so bestie, welcome to the Kernel API Manual page for lpfc_bsg_diag_loopback_run β yes that's a whole mouthful, yes I say it in one breath, no you don't have to. This is the gen-z translation, but like... all the facts are still here, promise. π«Ά
β¨ NAME β¨
lpfc_bsg_diag_loopback_run β run loopback on a port by issue ct cmd to itself π
πΈ SYNOPSIS πΈ
int lpfc_bsg_diag_loopback_run (struct bsg_job *job );
π ARGUMENTS π
jobβ theLPFC_BSG_VENDOR_DIAG_TESTfc_bsg_job, aka the little container holding your whole request. it's giving "main character energy" honestly.
π¦ DESCRIPTION π¦
so what does this icon actually do? it receives a user data buffer that's gonna be transmitted and received on the same port β yes, the port talking to itself, we love a self-sufficient queen π. heads up though: the link must be up and already in loopback mode before you call this. no loopback, no vibes. π
here's the whole little ritual, step by step:
- A kernel buffer is allocated to copy the user data into.
- The port registers with "itself".
- The transmit and receive exchange ids are obtained.
- The receive exchange id is posted.
- A new els loopback event is created.
- The command and response iocbs are allocated.
- The cmd iocb
FsTypeis set to elx loopback and theCmdRspto looppback.
and that's the whole glow-up sequence β¨
lowkey important: this function is meant to be called n times while the port is in loopback, so it is the apps responsibility to issue a reset to take the port out of loopback mode. like, the function will not do it for you, bestie β you gotta clean up after yourself. periodt. π
β SEE ALSO β
Kernel file ./drivers/scsi/lpfc/lpfc_bsg.c
and the whole squad, in order, because nobody gets left behind π«Ά:
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_get_dfc_rev(9)lpfc_bsg_issue_mbox_cmpl(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 page, bestie!! πβ¨ππ¦πΈπ
this little love letter lives in ./drivers/scsi/lpfc and it's dated October 2026 β yes, from the future, we stay ahead of the trend ππ lowkey obsessed with whoever wrote this, ngl. byeee π«Άπ
π¦ 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