lpfc_sli_abort_iocb(9)
π lpfc_sli_abort_iocb(9) π
okay so bestie, this page is from the Kernel API Manual, and it's giving βabort squad assemblesβ energy β¨. The function is lpfc_sli_abort_iocb, and she does exactly what the name says: issue abort for all commands on a host/target/LUN. no cap.
πΈ NAME πΈ
lpfc_sli_abort_iocb β issue abort for all commands on a host/target/LUN π
β¨ SYNOPSIS β¨
int lpfc_sli_abort_iocb (struct lpfc_vport *vport , u16 tgt_id , u64 lun_id , lpfc_ctx_cmd abort_cmd );
π ARGUMENTS π
vportβ Pointer to virtual port.tgt_idβ SCSI ID of the target.lun_idβ LUN ID of the scsi device.abort_cmdβLPFC_CTX_LUN/LPFC_CTX_TGT/LPFC_CTX_HOST.
π¦ DESCRIPTION π¦
okay so here's the vibe: this function sends an abort command for every SCSI command associated with the given virtual port that's pending on the ring, filtered by lpfc_sli_validate_fcp_iocb_for_abort and then by the lpfc_sli_validate_fcp_iocb function. the ordering for validation before submitting abort iocbs must be lpfc_sli_validate_fcp_iocb_for_abort followed by lpfc_sli_validate_fcp_iocb. that order is not a suggestion, bestie π
here's how abort_cmd changes the plot:
- when
abort_cmd == LPFC_CTX_LUN, the function sends abort only to the FCP iocbs associated with the lun specified by thetgt_idandlun_idparameters. - when
abort_cmd == LPFC_CTX_TGT, the function sends abort only to the FCP iocbs associated with the SCSI target specified by thetgt_idparameter. - when
abort_cmd == LPFC_CTX_HOST, the function sends abort to all FCP iocbs associated with the virtual port.
the pring used for SLI3 is sli3_ring[LPFC_FCP_RING], and for SLI4 lpfc_sli4_calc_ring is used. yes, the page literally says pring, and we respect the typo's main character energy π«Ά
this function returns the number of iocbs it failed to abort. and plot twist: this function is called with no locks held. not me, not locks, not today π
π SEE ALSO π
the kernel file is ./drivers/scsi/lpfc/lpfc_sli.c, and the reference list is absolutely enormous. every single one is here, exactly, because facts don't change even when the vibe does π
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_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_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)
source/version: ./drivers/scsi/lpfc β date: October 2026 β page: lpfc_sli_abort_iocb(9). byeee, go abort those iocbs with main character energy π«Άπβ¨
π¦ 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