lpfc_els_unsol_event(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’« NAME πŸ’«

lpfc_els_unsol_event β€” bestie, this is the one that processes an unsolicited event from an els sli ring ✨

So yeah, that's the whole vibe: unsolicited event comes in from an ELS SLI ring, and this function is the main character who handles it. πŸŽ€

🌸 SYNOPSIS 🌸

void lpfc_els_unsol_event (struct lpfc_hba *phba , struct lpfc_sli_ring
*pring , struct lpfc_iocbq *elsiocb );

No cap, it takes three pointers and returns void β€” it's giving "I do the work, I don't bring anything back." πŸ’…

πŸ¦‹ ARGUMENTS πŸ¦‹

  • phba β€” pointer to lpfc hba data structure. Like, the whole adapter's info lives here, so of course we need it. 🫢
  • pring β€” pointer to a SLI ring. This is the ring in question, the one the event rolled up on.
  • elsiocb β€” pointer to lpfc els iocb data structure. The iocb bestie in question, basically. πŸ’œ

πŸ”₯ DESCRIPTION πŸ”₯

Okay so here's what's actually happening. This routine is used to process an unsolicited event received from a SLI (Service Level Interface) ring. πŸ‘‘

The actual processing of the data buffer associated with the unsolicited event is done by invoking the routine lpfc_els_unsol_buffer β€” and the way that works is, the iocb buffer gets properly set up first, from the SLI ring on which the unsolicited event was received, and then lpfc_els_unsol_buffer gets called. So it's giving setup-then-handoff, and honestly? Obsessed. The setup is literally the moment, iykyk, because lpfc_els_unsol_buffer only gets to slay once the iocb buffer is ready. πŸ’–

Ngl the order matters here: properly set up the iocb buffer from the SLI ring the unsolicited event came in on, and only then invoke lpfc_els_unsol_buffer. That's the whole pipeline, periodt.

⭐ SEE ALSO ⭐

Kernel file ./drivers/scsi/lpfc/lpfc_els.c β€” plus a genuinely iconic list of siblings, all in (9) section, and we are NOT skipping a single one because every single one ate:

lpfc_els_chk_latt(9), lpfc_prep_els_iocb(9), lpfc_issue_fabric_reglogin(9), lpfc_issue_reg_vfi(9), lpfc_issue_unreg_vfi(9), lpfc_check_clean_addr_bit(9), lpfc_cmpl_els_flogi_fabric(9), lpfc_cmpl_els_flogi_nport(9), lpfc_cmpl_els_flogi(9), lpfc_cmpl_els_link_down(9), lpfc_issue_els_flogi(9), lpfc_els_abort_flogi(9), lpfc_initial_flogi(9), lpfc_initial_fdisc(9)

lpfc_more_plogi(9), lpfc_plogi_confirm_nport(9), lpfc_end_rscn(9), lpfc_cmpl_els_rrq(9), lpfc_check_encryption(9), lpfc_cmpl_els_plogi(9), lpfc_issue_els_plogi(9), lpfc_cmpl_els_prli(9), lpfc_issue_els_prli(9), lpfc_rscn_disc(9), lpfc_adisc_done(9), lpfc_more_adisc(9), lpfc_cmpl_els_adisc(9), lpfc_issue_els_adisc(9)

lpfc_cmpl_els_logo(9), lpfc_issue_els_logo(9), lpfc_cmpl_els_cmd(9), lpfc_reg_fab_ctrl_node(9), lpfc_cmpl_els_disc_cmd(9), lpfc_issue_els_scr(9), lpfc_issue_els_rscn(9), lpfc_issue_els_farpr(9), lpfc_issue_els_rdf(9), lpfc_least_capable_settings(9), lpfc_cmpl_els_edc(9), lpfc_cancel_retry_delay_tmo(9), lpfc_els_retry_delay(9), lpfc_els_retry_delay_handler(9)

lpfc_link_reset(9), lpfc_els_retry(9), lpfc_els_free_data(9), lpfc_els_free_bpl(9), lpfc_els_free_iocb(9), lpfc_cmpl_els_logo_acc(9), lpfc_mbx_cmpl_dflt_rpi(9), lpfc_cmpl_els_rsp(9), lpfc_els_rsp_acc(9), lpfc_els_rsp_reject(9), lpfc_els_rsp_adisc_acc(9), lpfc_els_rsp_prli_acc(9), lpfc_els_rsp_rnid_acc(9), lpfc_els_clear_rrq(9)

lpfc_els_rsp_echo_acc(9), lpfc_els_disc_adisc(9), lpfc_els_disc_plogi(9), lpfc_els_rcv_lcb(9), lpfc_els_flush_rscn(9), lpfc_rscn_payload_check(9), lpfc_rscn_recovery_check(9), lpfc_send_rscn_event(9), lpfc_els_rcv_rscn(9), lpfc_els_handle_rscn(9), lpfc_els_rcv_flogi(9), lpfc_els_rcv_rnid(9), lpfc_els_rcv_echo(9), lpfc_els_rcv_lirr(9)

lpfc_els_rcv_rrq(9), lpfc_els_rsp_rls_acc(9), lpfc_els_rcv_rls(9), lpfc_els_rcv_rtv(9), lpfc_send_rrq(9), lpfc_els_rsp_rpl_acc(9), lpfc_els_rcv_rpl(9), lpfc_els_rcv_farp(9), lpfc_els_rcv_farpr(9), lpfc_els_rcv_fan(9), lpfc_els_rcv_edc(9), lpfc_els_timeout(9), lpfc_els_timeout_handler(9), lpfc_els_flush_cmd(9)

lpfc_els_flush_all_cmd(9), lpfc_send_els_failure_event(9), lpfc_send_els_event(9), lpfc_display_fpin_wwpn(9), lpfc_els_rcv_fpin_li(9), lpfc_els_rcv_fpin_del(9), lpfc_els_rcv_fpin_peer_cgn(9), lpfc_els_rcv_fpin_cgn(9), lpfc_els_unsol_buffer(9) πŸ‘‘ (yes, the handoff bestie from DESCRIPTION β€” hi queen), lpfc_do_scr_ns_plogi(9), lpfc_cmpl_reg_new_vport(9), lpfc_register_new_vport(9), lpfc_cancel_all_vport_retry_delay_timer(9), lpfc_retry_pport_discovery(9)

lpfc_fabric_login_reqd(9), lpfc_cmpl_els_fdisc(9), lpfc_issue_els_fdisc(9), lpfc_cmpl_els_npiv_logo(9), lpfc_issue_els_npiv_logo(9), lpfc_fabric_block_timeout(9), lpfc_resume_fabric_iocbs(9), lpfc_unblock_fabric_iocbs(9), lpfc_block_fabric_iocbs(9), lpfc_cmpl_fabric_iocb(9), lpfc_issue_fabric_iocb(9), lpfc_fabric_abort_vport(9), lpfc_fabric_abort_nport(9), lpfc_fabric_abort_hba(9)

lpfc_sli4_vport_delete_els_xri_aborted(9), lpfc_sli4_els_xri_aborted(9) πŸ¦‹


πŸ’– Okay that's the whole page, bestie β€” no details left behind, fr fr. This little masterpiece lives over in ./drivers/scsi/lpfc and it's stamped October 2026, from the Kernel API Manual, and it will forever answer to the name lpfc_els_unsol_event(9). Slay, go handle those unsolicited events. πŸŒˆπŸŽ€

πŸ“¦ where this page comes from