lpfc_bg_setup_sgl(9)
okay so bestie, this is lpfc_bg_setup_sgl(9) straight out of the Kernel API Manual, and it's literally the blueprint for setting up a BlockGuard SGL with no protection data. Let's get into it π
π NAME π
lpfc_bg_setup_sgl β setup BlockGuard SGL with no protection data. iconic behavior, no notes β¨
β¨ SYNOPSIS β¨
uint32_t lpfc_bg_setup_sgl (struct lpfc_hba *phba , struct scsi_cmnd *sc
, struct sli4_sge *sgl , int datasegcnt , struct lpfc_io_buf *lpfc_cmd
);
π ARGUMENTS π
phbaβ the Hba for which this call is being executed. main character energy fr.scβ pointer to the scsi command we're working on. that's the assignment, bestie.sglβ pointer to the buffer list for protection groups. the whole vibe check lives here.datasegcntβ number of segments of data that have been dma mapped. count 'em, don't play.lpfc_cmdβ lpfc scsi command object pointer. yes ma'am π«Ά
π¦ DESCRIPTION π¦
This function sets up the SGL buffer list for protection groups of type LPFC_PG_TYPE_NO_DIF. slay.
This is usually used when the HBA is instructed to generate DIFs and insert them into the data stream (or strip DIF from the incoming data stream). it's giving "I handle protection so you don't have to" π
The buffer list consists of just one protection group, described below:
start of prot group --> | DI_SEED |
βββββββββββββββββββββββββββββββββ
β Data SGE β
β more Data SGE's ... (opt) β
βββββββββββββββββββββββββββββββββ
πΈ NOTE πΈ
Data s/g buffers have been dma mapped. no cap, that's important.
Returns the number of SGEs added to the SGL. periodt π
π SEE ALSO π
Kernel file: ./drivers/scsi/lpfc/lpfc_scsi.c
and the entire friend group, lowkey: lpfc_sli4_set_rsp_sgl_last(9), lpfc_rampdown_queue_depth(9), lpfc_ramp_down_queue_handler(9), lpfc_scsi_dev_block(9), lpfc_new_scsi_buf_s3(9), lpfc_sli4_vport_delete_fcp_xri_aborted(9), lpfc_sli4_io_xri_aborted(9), lpfc_get_scsi_buf_s3(9), lpfc_get_scsi_buf_s4(9), lpfc_get_scsi_buf(9), lpfc_release_scsi_buf_s3(9), lpfc_release_scsi_buf_s4(9), lpfc_release_scsi_buf(9), lpfc_fcpcmd_to_iocb(9), lpfc_scsi_prep_dma_buf_s3(9), lpfc_bg_err_inject(9), lpfc_sc_to_bg_opcodes(9), lpfc_bg_err_opcodes(9), lpfc_bg_setup_bpl(9), lpfc_bg_setup_bpl_prot(9), lpfc_bg_setup_sgl_prot(9), lpfc_prot_group_type(9), lpfc_bg_scsi_adjust_dl(9), lpfc_bg_scsi_prep_dma_buf_s3(9), lpfc_scsi_prep_dma_buf_s4(9), lpfc_bg_scsi_prep_dma_buf_s4(9), lpfc_scsi_prep_dma_buf(9), lpfc_bg_scsi_prep_dma_buf(9), lpfc_scsi_prep_cmnd_buf(9), lpfc_send_scsi_error_event(9), lpfc_scsi_unprep_dma_buf(9), lpfc_unblock_requests(9), lpfc_block_requests(9), lpfc_update_cmf_cmpl(9), lpfc_update_cmf_cmd(9), lpfc_handle_fcp_err(9), lpfc_fcp_io_cmd_wqe_cmpl(9), lpfc_scsi_cmd_iocb_cmpl(9), lpfc_scsi_prep_cmnd_buf_s3(9), lpfc_scsi_prep_cmnd_buf_s4(9), lpfc_scsi_prep_cmnd(9), lpfc_scsi_prep_task_mgmt_cmd_s3(9), lpfc_scsi_prep_task_mgmt_cmd_s4(9), lpfc_scsi_api_table_setup(9), lpfc_tskmgmt_def_cmpl(9), lpfc_check_pci_resettable(9), lpfc_info(9), lpfc_poll_rearm_timer(9), lpfc_poll_start_timer(9), lpfc_poll_timeout(9), lpfc_queuecommand(9), lpfc_abort_handler(9), lpfc_check_fcp_rsp(9), lpfc_send_taskmgmt(9), lpfc_chk_tgt_mapped(9), lpfc_reset_flush_io_context(9), lpfc_device_reset_handler(9), lpfc_target_reset_handler(9), lpfc_host_reset_handler(9), lpfc_sdev_init(9), lpfc_sdev_configure(9), lpfc_sdev_destroy(9), lpfc_create_device_data(9), lpfc_delete_device_data(9), __lpfc_get_device_data(9), lpfc_find_next_oas_lun(9), lpfc_enable_oas_lun(9), lpfc_disable_oas_lun(9)
and that's the whole page, bestie! source/version is ./drivers/scsi/lpfc, dated October 2026, page lpfc_bg_setup_sgl(9) β mwah πβ¨
π¦ 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