lpfc_sli4_sp_handle_mcqe(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ lpfc_sli4_sp_handle_mcqe(9) β€” Kernel API Manual, but make it a whole vibe

okay so bestie, we're in the Kernel API Manual, section 9, and this page is about one tiny but iconic function in the lpfc driver. it's giving β€œsmall function, big responsibilities” and i'm obsessed πŸ’…βœ¨


🌸 NAME 🌸

lpfc_sli4_sp_handle_mcqe β€” process a mailbox completion queue entry. literally what it says on the tin, no cap 🫢


✨ SYNOPSIS ✨

bool lpfc_sli4_sp_handle_mcqe (struct lpfc_hba *phba , struct lpfc_queue
*cq , struct lpfc_cqe *cqe );
bestie, the signature wraps exactly like that β€” she's long, she's iconic, we respect it πŸ’…

πŸŽ€ ARGUMENTS πŸŽ€

  • phba β€” a pointer to the HBA context object. think of it as the host bus adapter's whole personality in one struct πŸ’–
  • cq β€” a pointer to the associated CQ. iykyk, completion queue energy ✨
  • cqe β€” a pointer to the mailbox completion queue entry. the little envelope of completion info πŸŽ€

πŸ’œ DESCRIPTION πŸ’œ

so what does this routine actually do? it processes a mailbox completion queue entry β€” and here's the ✨iconic✨ part: it checks the MCQE's async bit, then invokes either the proper mailbox complete handling routine or the asynchronous event handling routine, depending on that bit. two paths, one function, very main character energy 😭πŸ”₯

no cap, that's it. it reads the bit, picks the handler, and moves on. slay πŸ’…


🌈 RETURN 🌈

it returns true if work was posted to the worker thread β€” otherwise it returns false. that's the whole vibe check: true = work got posted, false = nope 🫢


πŸ‘‘ SEE ALSO πŸ‘‘

the full squad of cross-references lives in ./drivers/scsi/lpfc/lpfc_sli.c β€” and here's every single one, preserved exactly because we don't do missing details in this house πŸ’…:

       Kernel file ./drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_pcimem_bcopy(9),
       lpfc_sli4_wq_put(9), lpfc_sli4_wq_release(9), lpfc_sli4_mq_put(9),
       lpfc_sli4_mq_release(9), lpfc_sli4_eq_get(9), lpfc_sli4_eq_clr_intr(9),
       lpfc_sli4_if6_eq_clr_intr(9), lpfc_sli4_write_eq_db(9),
       lpfc_sli4_if6_write_eq_db(9), lpfc_sli4_cq_get(9),
       lpfc_sli4_write_cq_db(9), lpfc_sli4_if6_write_cq_db(9),
       lpfc_cmd_iocb(9), lpfc_resp_iocb(9), __lpfc_sli_get_iocbq(9),
       __lpfc_clear_active_sglq(9), __lpfc_get_active_sglq(9),
       lpfc_clr_rrq_active(9), lpfc_handle_rrq_active(9),
       lpfc_get_active_rrq(9), lpfc_cleanup_vports_rrqs(9),
       lpfc_test_rrq_active(9), lpfc_set_rrq_active(9),
       __lpfc_sli_get_els_sglq(9), __lpfc_sli_get_nvmet_sglq(9),
       lpfc_sli_get_iocbq(9), __lpfc_sli_release_iocbq_s4(9),
       __lpfc_sli_release_iocbq_s3(9), __lpfc_sli_release_iocbq(9),
       lpfc_sli_release_iocbq(9), lpfc_sli_cancel_iocbs(9),
       lpfc_sli_iocb_cmd_type(9), lpfc_sli_ring_map(9),
       lpfc_sli_ringtxcmpl_put(9), lpfc_sli_ringtx_get(9),
       lpfc_cmf_sync_cmpl(9), lpfc_issue_cmf_sync_wqe(9),
       lpfc_sli_next_iocb_slot(9), lpfc_sli_next_iotag(9),
       lpfc_sli_submit_iocb(9), lpfc_sli_update_full_ring(9),
       lpfc_sli_update_ring(9), lpfc_sli_resume_iocb(9),
       lpfc_sli_next_hbq_slot(9), lpfc_sli_hbqbuf_free_all(9),
       lpfc_sli_hbq_to_firmware(9), lpfc_sli_hbq_to_firmware_s3(9),
       lpfc_sli_hbq_to_firmware_s4(9), lpfc_sli_hbqbuf_fill_hbqs(9),
       lpfc_sli_hbqbuf_add_hbqs(9), lpfc_sli_hbqbuf_init_hbqs(9),
       lpfc_sli_rqbuf_get(9), lpfc_sli_hbqbuf_find(9), lpfc_sli_free_hbq(9),
       lpfc_sli_chk_mbx_command(9), lpfc_sli_wake_mbox_wait(9),
       lpfc_sli_def_mbox_cmpl(9), lpfc_sli_handle_mb_event(9),
       lpfc_sli_get_buff(9), lpfc_nvme_unsol_ls_handler(9),
       lpfc_complete_unsol_iocb(9), lpfc_sli_process_unsol_iocb(9),
       lpfc_sli_iocbq_lookup(9), lpfc_sli_iocbq_lookup_by_tag(9),
       lpfc_sli_process_sol_iocb(9), lpfc_sli_rsp_pointers_error(9),
       lpfc_poll_eratt(9), lpfc_sli_handle_fast_ring_event(9),
       lpfc_sli_sp_handle_rspiocb(9), lpfc_sli_handle_slow_ring_event(9),
       lpfc_sli_handle_slow_ring_event_s3(9),
       lpfc_sli_handle_slow_ring_event_s4(9), lpfc_sli_abort_iocb_ring(9),
       lpfc_sli_abort_fcp_rings(9), lpfc_sli_flush_io_rings(9),
       lpfc_sli_brdready_s3(9), lpfc_sli_brdready_s4(9), lpfc_sli_brdready(9),
       lpfc_reset_barrier(9), lpfc_sli_brdkill(9), lpfc_sli_brdreset(9),
       lpfc_sli4_brdreset(9), lpfc_sli_brdrestart_s3(9),
       lpfc_sli_brdrestart_s4(9), lpfc_sli_brdrestart(9),
       lpfc_sli_chipset_init(9), lpfc_sli_hbq_count(9),
       lpfc_sli_hbq_entry_count(9), lpfc_sli_hbq_size(9),
       lpfc_sli_hbq_setup(9), lpfc_sli4_rb_setup(9), lpfc_sli_config_port(9),
       lpfc_sli_hba_setup(9), lpfc_sli4_read_fcoe_params(9),
       lpfc_sli4_read_rev(9), lpfc_sli4_get_ctl_attr(9),
       lpfc_sli4_retrieve_pport_name(9), lpfc_sli4_arm_cqeq_intr(9),
       lpfc_sli4_get_avail_extnt_rsrc(9), lpfc_sli4_chk_avail_extnt_rsrc(9),
       lpfc_sli4_cfg_post_extnts(9), lpfc_sli4_alloc_extent(9),
       lpfc_sli4_dealloc_extent(9), lpfc_ras_stop_fwlog(9),
       lpfc_sli4_ras_dma_free(9), lpfc_sli4_ras_dma_alloc(9),
       lpfc_sli4_ras_mbox_cmpl(9), lpfc_sli4_ras_fwlog_init(9),
       lpfc_sli4_ras_setup(9), lpfc_sli4_alloc_resource_identifiers(9),
       lpfc_sli4_dealloc_resource_identifiers(9),
       lpfc_sli4_get_allocated_extnts(9), lpfc_sli4_repost_sgl_list(9),
       lpfc_sli4_repost_io_sgl_list(9), lpfc_init_idle_stat_hb(9),
       lpfc_rx_monitor_create_ring(9), lpfc_rx_monitor_destroy_ring(9),
       lpfc_rx_monitor_record(9), lpfc_rx_monitor_report(9), lpfc_cmf_setup(9),
       lpfc_get_platform_uuid(9), lpfc_sli4_hba_setup(9), lpfc_mbox_timeout(9),
       lpfc_sli4_mbox_completions_pending(9),
       lpfc_sli4_process_missed_mbox_completions(9),
       lpfc_mbox_timeout_handler(9), lpfc_sli_issue_mbox_s3(9),
       lpfc_sli4_async_mbox_block(9), lpfc_sli4_async_mbox_unblock(9),
       lpfc_sli4_wait_bmbx_ready(9), lpfc_sli4_post_sync_mbox(9),
       lpfc_sli_issue_mbox_s4(9), lpfc_sli4_post_async_mbox(9),
       lpfc_sli_issue_mbox(9), lpfc_mbox_api_table_setup(9),
       __lpfc_sli_ringtx_put(9), lpfc_sli_next_iocb(9),
       __lpfc_sli_issue_iocb_s3(9), __lpfc_sli_issue_fcp_io_s3(9),
       __lpfc_sli_issue_fcp_io_s4(9), __lpfc_sli_issue_iocb_s4(9),
       lpfc_sli_api_table_setup(9), lpfc_sli4_calc_ring(9),
       lpfc_sli_issue_iocb(9), lpfc_extra_ring_setup(9),
       lpfc_sli_async_event_handler(9), lpfc_sli4_setup(9), lpfc_sli_setup(9),
       lpfc_sli4_queue_init(9), lpfc_sli_queue_init(9),
       lpfc_sli_mbox_sys_flush(9), lpfc_sli_host_down(9), lpfc_sli_hba_down(9),
       lpfc_sli_pcimem_bcopy(9), lpfc_sli_bemem_bcopy(9),
       lpfc_sli_ringpostbuf_put(9), lpfc_sli_get_buffer_tag(9),
       lpfc_sli_ring_taggedbuf_get(9), lpfc_sli_ringpostbuf_get(9),
       lpfc_sli_abort_els_cmpl(9), lpfc_ignore_els_cmpl(9),
       lpfc_sli_issue_abort_iotag(9), lpfc_sli_hba_iocb_abort(9),
       lpfc_sli_validate_fcp_iocb_for_abort(9), lpfc_sli_validate_fcp_iocb(9),
       lpfc_sli_sum_iocb(9), lpfc_sli_abort_fcp_cmpl(9),
       lpfc_sli_abort_iocb(9), lpfc_sli_abort_taskmgmt(9),
       lpfc_sli_wake_iocb_wait(9), lpfc_chk_iocb_flg(9),
       lpfc_sli_issue_iocb_wait(9), lpfc_sli_issue_mbox_wait(9),
       lpfc_sli_mbox_sys_shutdown(9), lpfc_sli_eratt_read(9),
       lpfc_sli4_eratt_read(9), lpfc_sli_check_eratt(9),
       lpfc_intr_state_check(9), lpfc_sli_sp_intr_handler(9),
       lpfc_sli_fp_intr_handler(9), lpfc_sli_intr_handler(9),
       lpfc_sli4_els_xri_abort_event_proc(9),
       lpfc_sli4_els_preprocess_rspiocbq(9),
       lpfc_sli4_sp_handle_async_event(9), lpfc_sli4_sp_handle_mbox_event(9),
       lpfc_sli4_sp_handle_els_wcqe(9), lpfc_sli4_sp_handle_rel_wcqe(9),
       lpfc_sli4_sp_handle_abort_xri_wcqe(9), lpfc_sli4_sp_handle_rcqe(9),
       lpfc_sli4_sp_handle_cqe(9), lpfc_sli4_sp_handle_eqe(9),
       __lpfc_sli4_process_cq(9), __lpfc_sli4_sp_process_cq(9),
       lpfc_sli4_sp_process_cq(9), lpfc_sli4_dly_sp_process_cq(9),
       lpfc_sli4_fp_handle_fcp_wcqe(9), lpfc_sli4_fp_handle_rel_wcqe(9),
       lpfc_sli4_nvmet_handle_rcqe(9), lpfc_sli4_fp_handle_cqe(9),
       __lpfc_sli4_hba_process_cq(9), lpfc_sli4_hba_process_cq(9),
       lpfc_sli4_hba_handle_eqe(9), lpfc_sli4_dly_hba_process_cq(9),
       lpfc_sli4_hba_intr_handler(9), lpfc_sli4_intr_handler(9),
       lpfc_sli4_queue_free(9), lpfc_sli4_queue_alloc(9),
       lpfc_dual_chute_pci_bar_map(9), lpfc_modify_hba_eq_delay(9),
       lpfc_eq_create(9), lpfc_sli4_hba_intr_handler_th(9), lpfc_cq_create(9),
       lpfc_cq_create_set(9), lpfc_mq_create_fb_init(9), lpfc_mq_create(9),
       lpfc_wq_create(9), lpfc_rq_create(9), lpfc_mrq_create(9),
       lpfc_eq_destroy(9), lpfc_cq_destroy(9), lpfc_mq_destroy(9),
       lpfc_wq_destroy(9), lpfc_rq_destroy(9), lpfc_sli4_post_sgl(9),
       lpfc_sli4_alloc_xri(9), __lpfc_sli4_free_xri(9), lpfc_sli4_free_xri(9),
       lpfc_sli4_next_xritag(9), lpfc_sli4_post_sgl_list(9),
       lpfc_sli4_post_io_sgl_block(9), lpfc_sli4_post_io_sgl_list(9),
       lpfc_fc_frame_check(9), lpfc_fc_hdr_get_vfi(9),
       lpfc_fc_frame_to_vport(9), lpfc_update_rcv_time_stamp(9),
       lpfc_cleanup_rcv_buffers(9), lpfc_rcv_seq_check_edtov(9),
       lpfc_fc_frame_add(9), lpfc_sli4_abort_partial_seq(9),
       lpfc_sli4_abort_ulp_seq(9), lpfc_sli4_seq_abort_rsp_cmpl(9),
       lpfc_sli4_xri_inrange(9), lpfc_sli4_seq_abort_rsp(9),
       lpfc_sli4_handle_unsol_abort(9), lpfc_seq_complete(9), lpfc_prep_seq(9),
       lpfc_sli4_handle_received_buffer(9), lpfc_sli4_post_all_rpi_hdrs(9),
       lpfc_sli4_post_rpi_hdr(9), lpfc_sli4_alloc_rpi(9),
       __lpfc_sli4_free_rpi(9), lpfc_sli4_free_rpi(9),
       lpfc_sli4_remove_rpis(9), lpfc_sli4_resume_rpi(9),
       lpfc_sli4_init_vpi(9), lpfc_mbx_cmpl_add_fcf_record(9),
       lpfc_sli4_add_fcf_record(9), lpfc_sli4_build_dflt_fcf_record(9),
       lpfc_sli4_fcf_scan_read_fcf_rec(9), lpfc_sli4_fcf_rr_read_fcf_rec(9),
       lpfc_sli4_read_fcf_rec(9), lpfc_check_next_fcf_pri_level(9),
       lpfc_sli4_fcf_rr_next_index_get(9), lpfc_sli4_fcf_rr_index_set(9),
       lpfc_sli4_fcf_rr_index_clear(9), lpfc_mbx_cmpl_redisc_fcf_table(9),
       lpfc_sli4_redisc_fcf_table(9), lpfc_sli4_fcf_dead_failthrough(9),
       lpfc_sli_get_config_region23(9), lpfc_sli4_get_config_region23(9),
       lpfc_sli_read_link_ste(9), lpfc_log_fw_write_cmpl(9), lpfc_wr_object(9),
       lpfc_cleanup_pending_mbox(9), lpfc_drain_txq(9), lpfc_wqe_bpl2sgl(9),
       lpfc_sli4_issue_wqe(9), lpfc_sli4_issue_abort_iotag(9),
       lpfc_snapshot_mxp(9), lpfc_adjust_pvt_pool_count(9),
       lpfc_adjust_high_watermark(9), lpfc_move_xri_pvt_to_pbl(9),
       _lpfc_move_xri_pbl_to_pvt(9), lpfc_move_xri_pbl_to_pvt(9),
       lpfc_keep_pvt_pool_above_lowwm(9), lpfc_release_io_buf(9),
       lpfc_get_io_buf_from_private_pool(9),
       lpfc_get_io_buf_from_expedite_pool(9),
       lpfc_get_io_buf_from_multixri_pools(9), lpfc_get_io_buf(9),
       lpfc_read_object(9), lpfc_get_sgl_per_hdwq(9), lpfc_put_sgl_per_hdwq(9),
       lpfc_free_sgl_per_hdwq(9), lpfc_get_cmd_rsp_buf_per_hdwq(9),
       lpfc_put_cmd_rsp_buf_per_hdwq(9), lpfc_free_cmd_rsp_buf_per_hdwq(9),
       lpfc_sli_prep_wqe(9)

and that's the whole page, bestie πŸ’– this icon lives at ./drivers/scsi/lpfc, dated October 2026, and its whole name is lpfc_sli4_sp_handle_mcqe(9). periodt πŸ’…βœ¨

πŸ“¦ where this page comes from