ipr_free_irqs(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– ipr_free_irqs β€” Kernel API Manual (section 9) πŸ’–

okay so bestie, sit down, hydrate, because we're doing kernel cleanup duty today and it's honestly iconic of you to be here 🫢


🌸 NAME 🌸

ipr_free_irqs β€” Free all allocated IRQs for the adapter.

like, all of them. every single one. bye bestie ✨


✨ SYNOPSIS ✨

void ipr_free_irqs (struct ipr_ioa_cfg *ioa_cfg );

no return value, no drama, just vibes and deallocation πŸ’…


πŸŽ€ ARGUMENTS πŸŽ€

  • ioa_cfg β€” the ipr cfg struct. that's the whole argument. one (1) struct, and it's the ipr cfg one. slay πŸŽ€

πŸ’… DESCRIPTION πŸ’…

This function frees all allocated IRQs for the specified adapter. that's the entire bit, no cap β€” you hand it the adapter's cfg struct and it lets go of every IRQ that got allocated for it. it's giving "moving out day, everything goes in the box" energy πŸ‘‘

Return value: none. it returns nothing, not even a little guy, not even a status code. it just does the thing and dips πŸ™ˆ


πŸ¦‹ SEE ALSO πŸ¦‹

bestie. brace yourself. the see-also section on this page is enormous and honestly kind of iconic for it. everything below lives in the kernel file ./drivers/scsi/ipr.c, and every single one is a section (9) entry. here we go, in order, no skipping, no summarizing, i promised 🫢

🧚 the command + interrupt crew

ipr_trc_hook(9), ipr_lock_and_done(9), ipr_reinit_ipr_cmnd(9), ipr_init_ipr_cmnd(9), __ipr_get_free_ipr_cmnd(9), ipr_get_free_ipr_cmnd(9), ipr_mask_and_clear_interrupts(9), ipr_save_pcix_cmd_reg(9), ipr_set_pcix_cmd_reg(9), __ipr_scsi_eh_done(9), ipr_scsi_eh_done(9), ipr_fail_all_ops(9), ipr_send_command(9), ipr_do_req(9), ipr_internal_cmd_done(9), ipr_init_ioadl(9), ipr_send_blocking_cmd(9), ipr_send_hcam(9), ipr_init_res_entry(9), ipr_is_same_device(9), __ipr_format_res_path(9), ipr_format_res_path(9), ipr_update_res_entry(9), ipr_clear_res_target(9), ipr_handle_config_change(9), ipr_process_ccn(9), strip_whitespace(9)

πŸ“ the logging girlies

ipr_log_vpd_compact(9), ipr_log_vpd(9), ipr_log_ext_vpd_compact(9), ipr_log_ext_vpd(9), ipr_log_enhanced_cache_error(9), ipr_log_cache_error(9), ipr_log_enhanced_config_error(9), ipr_log_sis64_config_error(9), ipr_log_config_error(9), ipr_log_enhanced_array_error(9), ipr_log_array_error(9), ipr_log_hex_data(9), ipr_log_enhanced_dual_ioa_error(9), ipr_log_dual_ioa_error(9), ipr_log_fabric_path(9), ipr_log64_fabric_path(9), ipr_log_path_elem(9), ipr_log64_path_elem(9), ipr_log_fabric_error(9), ipr_log_sis64_array_error(9), ipr_log_sis64_fabric_error(9), ipr_log_sis64_service_required_error(9), ipr_log_generic_error(9), ipr_log_sis64_device_error(9)

🧡 errors, timeouts, and other little guys

ipr_get_error(9), ipr_handle_log_data(9), ipr_process_error(9), ipr_timeout(9), ipr_oper_timeout(9), ipr_find_ses_entry(9), ipr_get_max_scsi_speed(9), ipr_wait_iodbg_ack(9)

🌈 the dump squad (they ate, fr)

ipr_get_sis64_dump_data_section(9), ipr_get_ldump_data_section(9), ipr_sdt_copy(9), ipr_init_dump_entry_hdr(9), ipr_dump_ioa_type_data(9), ipr_dump_version_data(9), ipr_dump_trace_data(9), ipr_dump_location_data(9), ipr_get_ioa_dump(9), ipr_release_dump(9), ipr_worker_thread(9), ipr_read_trace(9)

πŸ’œ sysfs show/store besties

ipr_show_fw_version(9), ipr_show_log_level(9), ipr_store_log_level(9), ipr_store_diagnostics(9), ipr_show_adapter_state(9), ipr_store_adapter_state(9), ipr_store_reset_adapter(9), ipr_store_iopoll_weight(9)

πŸŽ€ ucode + firmware glow-up

ipr_alloc_ucode_buffer(9), ipr_free_ucode_buffer(9), ipr_copy_ucode_buffer(9), ipr_build_ucode_ioadl64(9), ipr_build_ucode_ioadl(9), ipr_update_ioa_ucode(9), ipr_store_update_fw(9), ipr_show_fw_type(9)

🌸 dump file plumbing

ipr_read_dump(9), ipr_alloc_dump(9), ipr_free_dump(9), ipr_write_dump(9)

πŸ”₯ scsi device era

ipr_change_queue_depth(9), ipr_show_adapter_handle(9), ipr_show_resource_path(9), ipr_show_device_id(9), ipr_show_resource_type(9), ipr_show_raw_mode(9), ipr_store_raw_mode(9), ipr_biosparam(9), ipr_find_starget(9), ipr_target_destroy(9), ipr_find_sdev(9), ipr_sdev_destroy(9), ipr_sdev_configure(9), ipr_sdev_init(9), ipr_match_lun(9), ipr_cmnd_is_free(9), ipr_wait_for_ops(9)

⭐ error handling (eh) gang β€” be nice to them

ipr_device_reset(9), __ipr_eh_dev_reset(9), ipr_bus_reset_done(9), ipr_abort_timeout(9), ipr_cancel_op(9), ipr_scan_finished(9), ipr_eh_abort(9)

πŸ’€ interrupt handlers, entering the chat

ipr_handle_other_interrupt(9), ipr_isr_eh(9), ipr_isr(9), ipr_isr_mhrrq(9), ipr_build_ioadl64(9), ipr_build_ioadl(9)

🫢 erp β€” the whole saga

__ipr_erp_done(9), ipr_erp_done(9), ipr_reinit_ipr_cmnd_for_erp(9), __ipr_erp_request_sense(9), ipr_erp_request_sense(9), ipr_erp_cancel_all(9), ipr_dump_ioasa(9), ipr_gen_sense(9), ipr_get_autosense(9), ipr_erp_start(9), ipr_scsi_done(9), ipr_queuecommand(9)

πŸ‘‘ bringup / bringdown / mode pages

ipr_ioa_info(9), ipr_ioa_bringdown_done(9), ipr_ioa_reset_done(9), ipr_set_sup_dev_dflt(9), ipr_set_supported_devs(9), ipr_get_mode_page(9), ipr_check_term_power(9), ipr_scsi_bus_speed_limit(9), ipr_modify_ioafp_mode_page_28(9), ipr_build_mode_select(9), ipr_ioafp_mode_select_page28(9), ipr_build_mode_sense(9), ipr_reset_cmd_failed(9), ipr_reset_mode_sense_failed(9), ipr_ioafp_mode_sense_page28(9), ipr_ioafp_mode_select_page24(9), ipr_reset_mode_sense_page24_failed(9), ipr_ioafp_mode_sense_page24(9)

🧚 resource table + inquiry girlies

ipr_init_res_table(9), ipr_ioafp_query_ioa_cfg(9), ipr_ioafp_set_caching_parameters(9), ipr_ioafp_inquiry(9), ipr_inquiry_page_supported(9), ipr_ioafp_pageC4_inquiry(9), ipr_ioafp_cap_inquiry(9), ipr_ioafp_page3_inquiry(9), ipr_ioafp_page0_inquiry(9), ipr_ioafp_std_inquiry(9), ipr_ioafp_identify_hrrq(9)

🌈 reset pipeline, lowkey the main character

ipr_reset_timer_done(9), ipr_reset_start_timer(9), ipr_init_ioa_mem(9), ipr_reset_next_stage(9), ipr_reset_enable_ioa(9), ipr_reset_wait_for_dump(9), ipr_unit_check_no_data(9), ipr_get_unit_check_buffer(9), ipr_reset_get_unit_check_job(9), ipr_set_affinity_nobalance(9), ipr_reset_restore_cfg_space(9), ipr_reset_bist_done(9), ipr_reset_start_bist(9), ipr_reset_slot_reset_done(9), ipr_reset_reset_work(9), ipr_reset_slot_reset(9), ipr_reset_block_config_access_wait(9), ipr_reset_block_config_access(9), ipr_reset_allowed(9), ipr_reset_wait_to_start_bist(9), ipr_reset_alert(9), ipr_reset_quiesce_done(9), ipr_reset_cancel_hcam_done(9), ipr_reset_cancel_hcam(9), ipr_reset_ucode_download_done(9), ipr_reset_ucode_download(9), ipr_reset_shutdown_ioa(9), ipr_reset_ioa_job(9), _ipr_initiate_ioa_reset(9), ipr_initiate_ioa_reset(9), ipr_reset_freeze(9)

πŸ’œ pci error recovery crew

ipr_pci_mmio_enabled(9), ipr_pci_frozen(9), ipr_pci_slot_reset(9), ipr_pci_perm_failure(9), ipr_pci_error_detected(9)

🌸 probe / alloc / free / init finale

ipr_probe_ioa_part2(9), ipr_free_cmd_blks(9), ipr_free_mem(9), ipr_free_all_resources(9), ipr_alloc_cmd_blks(9), ipr_alloc_mem(9), ipr_initialize_bus_attr(9), ipr_init_regs(9), ipr_init_ioa_cfg(9), ipr_get_chip_info(9), ipr_wait_for_pci_err_recovery(9), ipr_test_intr(9), ipr_test_msi(9), ipr_initiate_ioa_bringdown(9)

πŸŽ€ module life cycle, we love a full circle moment

__ipr_remove(9), ipr_remove(9), ipr_probe(9), ipr_shutdown(9), ipr_halt_done(9), ipr_halt(9), ipr_init(9), ipr_exit(9)

and yes bestie, that was all of them, in order, nothing dropped. you're welcome, i counted twice πŸ’…

and that's the page!! πŸŽ‰ this little gem comes out of the source directory ./drivers/scsi, and the version/date on the tin is October 2026 β€” so like, keep that in mind when you're citing it in your essay. now go free those IRQs responsibly, mwah πŸ«ΆπŸ’–βœ¨

πŸ“¦ where this page comes from