lpfc_prot_group_type(9)
π lpfc_prot_group_type(9) β a Kernel API Manual moment
okay so bestie, we're reading a real kernel API page from the Kernel API Manual, and honestly? It's a short one. A little snack. But we're gonna read it properly because every detail matters, and also because I refuse to let you skim.
The function is lpfc_prot_group_type β say it with me, it's giving "I live in drivers/scsi/lpfc and I know things about DIF" π
β¨ NAME β¨
lpfc_prot_group_type β Get prtotection group type of SCSI command
not me pointing out that the original literally spells it "prtotection" π we love a typo. It stays. It's canon now. π
πΈ SYNOPSIS πΈ
int lpfc_prot_group_type (struct lpfc_hba *phba , struct scsi_cmnd *sc
);
literally two args, one int coming back at you, that's the whole vibe check π«
π¦ ARGUMENTS π¦
phbaβ the Hba for which this call is being executed. like, the whole reason we're here, the main character energy π«Άscβ pointer to the scsi command we're working on. that's your actual command bestie, go off π
π DESCRIPTION π
so here's the tea β β you hand this function a SCSI command that supports DIF, and it goes and figures out the composition of the protection groups involved in setting up buffer lists.
that's it. that's the job. it looks at your command, it looks at your protection groups, and it tells you what's up. no cap, that's genuinely the whole description π₯
β RETURN β
It returns the protection group type β with or without DIF. that's the duality of man, or whatever π
π SEE ALSO π
π Kernel file
./drivers/scsi/lpfc/lpfc_scsi.c
π§ The whole entire friend group (yes, all of them, I would never ghost a single one)
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(9)lpfc_bg_setup_sgl_prot(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)
like. sixty-eight of them. sixty-eight!! I counted so you don't have to, and I'm not dropping a single one because that would be disrespectful to the family π
nothing scary in here β no danger warnings, no deprecated flags, no undefined behaviour drama. it's a very chill page. enjoy the chill. π
and that's the whole thing, bestie!! this cutie lives at source ./drivers/scsi/lpfc, version October 2026, and it's filed under lpfc_prot_group_type(9) β mwah, iconic, no notes π
πβ¨
π¦ 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