lpfc_sli_hba_down(9)
Hiii bestie π welcome to the lpfc_sli_hba_down(9) page from the Kernel API Manual β manual name folded in right at the top, because weβre cute and efficient. This one is the resource cleanup function for the HBA, and itβs lowkey a shutdown-era icon. π«Ά
π NAME π
lpfc_sli_hba_down β the resource cleanup function for the HBA. Thatβs the whole vibe: cleanup bestie for the HBA. β¨
π SYNOPSIS π
int lpfc_sli_hba_down (struct lpfc_hba *phba );
π ARGUMENTS π
phbaβ pointer to the HBA context object. Thatβs the main character youβre handing over, bestie.
π§Ή DESCRIPTION π§Ή
Okay so this function cleans up all iocb, buffers, and mailbox commands while shutting down the HBA. It is called with no lock held, and it always returns 1. Periodt. No cap, thatβs the return value.
This function does the following to cleanup driver resources:
- Free discovery resources for each virtual port.
- Cleanup any pending fabric iocbs.
- Iterate through the
iocbtxq and free each entry in the list. - Free up any buffer posted to the HBA.
- Free mailbox commands in the mailbox queue.
Shutdown cleanup era: itβs doing the resource-collecting, list-walking, buffer-freeing, mailbox-queue-clearing thing so the HBA can go down cleanly. π
π SEE ALSO π
Kernel file ./drivers/scsi/lpfc/lpfc_sli.c β and honestly the whole iconic function family is linked below, so hydrate and scroll, bestie:
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_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)
Brought to you by ./drivers/scsi/lpfc β October 2026 β for lpfc_sli_hba_down(9). Byeee bestie, go clean up those resources! πβ¨π¦
π¦ 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