lpfc_handle_fcp_err(9)
π lpfc_handle_fcp_err β the Kernel API Manual page your fave scsi girlie needs
okay so bestie, welcome to the Kernel API Manual β¨ β specifically the part about lpfc_handle_fcp_err, aka the FCP response handler. it's giving "small function, big feelings" and honestly? iconic.
πΈ NAME πΈ
lpfc_handle_fcp_err β the FCP response handler. that's it, that's the whole vibe. she handles FCP responses. periodt.
π SYNOPSIS π
void lpfc_handle_fcp_err (struct lpfc_vport *vport , struct lpfc_io_buf
*lpfc_cmd , uint32_t fcpi_parm );
literally just a void function, no return value, no drama (well, some drama β it's handling errors after all π). three args, all spelled out for you π
π¦ ARGUMENTS π¦
vportβ the virtual port that this call is running for. like, whose port is this anyway? this one π«Άlpfc_cmdβ a pointer to thelpfc_io_bufdata structure. pointer bestie. handle with care β¨fcpi_parmβ the FCP Initiator parameter. yes it's auint32_t. yes it's important.
π DESCRIPTION π
so here's the tea β β this routine gets called to process the response IOCB when the status field is IOSTAT_FCP_RSP_ERROR. that's the one specific status, no cap. it's not out here handling every error in the world, just that one π
and what does she do with it? she sets the result field of the scsi command based upon the SCSI and FCP error. so like, the scsi command's result gets filled in depending on what kind of SCSI error and what kind of FCP error we're looking at. that's the whole job. she ate and left no crumbs π₯
ngl this is one of those functions where the description is short but the responsibility is real β errors are literally her whole personality π§
π SEE ALSO π
okay so this is the part where the manpage just dumps the entire friend group and honestly? i love that for us. the kernel file lives at ./drivers/scsi/lpfc/lpfc_scsi.c β go say hi π
and now, the full squad, no one left behind, iykyk:
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_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_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⦠that's the whole group chat right there 𫢠no gatekeeping.
cute lil sign-off π β this page lives under./drivers/scsi/lpfc, dated October 2026, and answers to the namelpfc_handle_fcp_err(9). mwah, go read the other 66 pages, ily, bye πβ¨
π¦ 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