lpfc_sli_get_buff(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

Bestie, welcome to the kernel API manual page for lpfc_sli_get_buff(9) β€” yes, the whole manual, but make it make sense πŸ’–βœ¨

πŸŽ€ NAME πŸŽ€

lpfc_sli_get_buff β€” get the buffer associated with the buffer tag. That’s literally the whole vibe: tag goes in, matching buffer comes out πŸ’…

✨ SYNOPSIS ✨

struct lpfc_dmabuf * lpfc_sli_get_buff (struct lpfc_hba *phba , struct
lpfc_sli_ring *pring , uint32_t tag );

πŸ’… ARGUMENTS πŸ’…

  • phba β€” pointer to the HBA context object 🫢
  • pring β€” pointer to the driver SLI ring object 🌸
  • tag β€” the buffer tag ✨

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so here’s the important tea: this function is called with no lock held β€” none, zero, do not bring a lock to this function’s party 😭

When the QUE_BUFTAG_BIT bit is set in tag, the buffer is posted for a particular exchange, and the function returns the buffer without replacing the buffer. She hands it back and keeps it moving πŸ’…

If the buffer is for unsolicited ELS or CT traffic, this function returns the buffer and also posts another buffer to the firmware β€” double duty, she contains multitudes ✨πŸ”₯

🌈 SEE ALSO 🌈

These are the linked faves and related kernel functions, all exact so you can grep them without me messing up a single character πŸ‘‘

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_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_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)

This page came from the kernel source at ./drivers/scsi/lpfc, dated October 2026, and it’s the lpfc_sli_get_buff(9) manual page β€” periodt πŸ«ΆπŸ’–βœ¨

πŸ“¦ where this page comes from