lpfc_sli_ringpostbuf_get(9)
π NAME π
okay bestie, welcome to lpfc_sli_ringpostbuf_get(9) from the Kernel API Manual β the function that searches buffers for unsolicited CT and ELS events. Itβs giving βwhereβs my buffer atβ energy, but make it kernel. π
β¨ SYNOPSIS β¨
struct lpfc_dmabuf * lpfc_sli_ringpostbuf_get (struct lpfc_hba *phba ,
struct lpfc_sli_ring *pring , dma_addr_t phys );
π ARGUMENTS π
phbaβ pointer to the HBA context object. Thatβs the HBAβs whole context situation, bestie.pringβ pointer to the driver SLI ring object. The ring in question, no cap.physβ DMA address of the buffer. Literally the DMA address, exactly as advertised. π¦
π¦ DESCRIPTION π¦
So hereβs the vibe: this function searches the buffer list using the dma_address of the unsolicited event to find the driverβs lpfc_dmabuf object that corresponds to that dma_address. Itβs a whole βmatch the address to the bufferβ moment, and honestly? iconic.
It returns the lpfc_dmabuf object if a buffer is found; otherwise it returns NULL. Thatβs the whole yes/no of it, periodt. π
This function is called by the ct and els unsolicited event handlers to get the buffer associated with the unsolicited event. Theyβre the ones sliding into its DMs for the buffer, iykyk.
Heads up, bestie: this function is called with no lock held. Not even a tiny one. π₯
π SEE ALSO π
The kernel file is ./drivers/scsi/lpfc/lpfc_sli.c. The whole friend group in SEE ALSO β no gatekeeping, every single one β is:
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_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_mcqe(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)
mwah π cute little sign-off: this page comes from source/version ./drivers/scsi/lpfc, dated October 2026, and you absolutely ate that read, bestie. πβ¨
π¦ 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