megasas_set_dma_mask(9)
π megasas_set_dma_mask β Kernel API Manual β¨
okay so bestie, welcome to the megasas_set_dma_mask page, straight out of the Linux Kernel API Manual. she's a tiny function with a big job: deciding how many DMA address bits your MegaRAID controller gets to play with. let's get into it π«Ά
πΈ NAME πΈ
megasas_set_dma_mask β set the DMA mask for the supported controllers, no cap π
β¨ SYNOPSIS β¨
int megasas_set_dma_mask (struct megasas_instance *instance );
π ARGUMENTS π
instanceβ the adapter soft state. that's it, that's the whole argument, she's low maintenance π
π¦ DESCRIPTION π¦
okay so this is the part where it gets controller-specific, and honestly it's giving "different friend groups, different vibes." here's the tea per controller fam:
For Ventura β the driver and the firmware will operate in 63bit DMA addresses. living large, highkey iconic π
For invader β by default, the driver and firmware will operate in 32bit DMA addresses for consistent DMA mapping. BUT (and this is the important bit π«Ά) if the 32 bit consistent DMA mask fails, the driver will try with a 63 bit consistent mask β provided the FW is true 63bit DMA capable. so it's a fallback situation, not a free-for-all. the firmware has to actually be capable, iykyk.
For older controllers (Thunderbolt and MFI based adapters) β the driver and firmware will operate in 32 bit consistent DMA addresses. no 63 bit dreams for these elders, they're chilling in 32 bits periodt π
lowkey the whole point of this function: make sure the DMA mask matches what the controller and firmware can actually handle. don't skip the vibe check π
π SEE ALSO π
first up, the kernel file where all this lives:
./drivers/scsi/megaraid/megaraid_sas_base.c
and now the full friend group β every single one of these, no skips, we don't leave anybody out π₯Ή:
megasas_set_dma_settings(9)megasas_get_cmd(9)megasas_return_cmd(9)megasas_decode_evt(9)megasas_enable_intr_xscale(9)megasas_disable_intr_xscale(9)megasas_read_fw_status_reg_xscale(9)megasas_clear_intr_xscale(9)megasas_fire_cmd_xscale(9)megasas_adp_reset_xscale(9)megasas_check_reset_xscale(9)megasas_enable_intr_ppc(9)megasas_disable_intr_ppc(9)megasas_read_fw_status_reg_ppc(9)megasas_clear_intr_ppc(9)megasas_fire_cmd_ppc(9)megasas_check_reset_ppc(9)megasas_enable_intr_skinny(9)megasas_disable_intr_skinny(9)megasas_read_fw_status_reg_skinny(9)megasas_clear_intr_skinny(9)megasas_fire_cmd_skinny(9)megasas_check_reset_skinny(9)megasas_enable_intr_gen2(9)megasas_disable_intr_gen2(9)megasas_read_fw_status_reg_gen2(9)megasas_clear_intr_gen2(9)megasas_fire_cmd_gen2(9)megasas_adp_reset_gen2(9)megasas_check_reset_gen2(9)megasas_issue_polled(9)megasas_issue_blocked_cmd(9)megasas_issue_blocked_abort_cmd(9)megasas_make_sgl32(9)megasas_make_sgl64(9)megasas_make_sgl_skinny(9)megasas_build_dcdb(9)megasas_build_ldio(9)megasas_cmd_type(9)megasas_queue_command(9)megasas_complete_cmd_dpc(9)megasas_start_timer(9)megasas_wait_for_outstanding(9)megasas_generic_reset(9)megasas_reset_timer(9)megasas_dump(9)megasas_dump_reg_set(9)megasas_dump_fusion_io(9)megasas_reset_bus_host(9)megasas_task_abort(9)megasas_reset_target(9)megasas_bios_param(9)megasas_service_aen(9)megasas_complete_int_cmd(9)megasas_complete_abort(9)megasas_complete_cmd(9)megasas_issue_pending_cmds_again(9)megasas_deplete_reply_queue(9)megasas_isr(9)megasas_transition_to_ready(9)megasas_teardown_frame_pool(9)megasas_create_frame_pool(9)megasas_free_cmds(9)megasas_alloc_cmds(9)megasas_ld_list_query(9)megasas_host_device_list_query(9)megasas_get_ctrl_info(9)megasas_issue_init_mfi(9)megasas_setup_irqs_msix(9)megasas_setup_jbod_map(9)megasas_get_device_list(9)megasas_set_high_iops_queue_affinity_and_hint(9)megasas_alloc_irq_vectors(9)megasas_init_fw(9)megasas_release_mfi(9)megasas_get_seq_num(9)megasas_register_aen(9)megasas_start_aen(9)megasas_io_attach(9)megasas_alloc_ctrl_mem(9)megasas_alloc_ctrl_dma_buffers(9)megasas_probe_one(9)megasas_flush_cache(9)megasas_shutdown_controller(9)megasas_suspend(9)megasas_resume(9)megasas_detach_one(9)megasas_shutdown(9)megasas_mgmt_fw_ioctl(9)megasas_mgmt_ioctl(9)megasas_update_device_list(9)megasas_add_remove_devices(9)megasas_init(9)megasas_exit(9)
that's the whole roster, 93 entries and we're not dropping a single one πβ¨
and that's the page bestie!! π mwah, go forth and DMA responsibly π
this gorgeousness came from ./drivers/scsi/megaraid, and she was dated October 2026 β screenshot it, frame it, it's giving archival icon behavior ππ¦
π¦ 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