megasas_set_dma_settings(9)
π megasas_set_dma_settings β a Kernel API Manual moment (section 9, bestie)
Okay so picture this: you're deep in the megaraid_sas driver, section 9 of the Kernel API Manual, and you just need the DCMD to know where its DMA buffer lives. That's literally this function. It's the little helper that handles the β¨ logistics β¨ so the rest of the driver can be the main character.
πΈ NAME πΈ
megasas_set_dma_settings β populate DMA address, length and flags for DCMDs. That's it, that's the whole vibe. It fills in the DMA deets on a DCMD frame. Iconic, lowkey essential, no cap. π
β¨ SYNOPSIS β¨
void megasas_set_dma_settings (struct megasas_instance *instance ,
struct megasas_dcmd_frame *dcmd , dma_addr_t dma_addr , u32 dma_len );
Notice the void up front β she returns nothing and she's at peace with that. π«Ά
π¦ ARGUMENTS π¦
Four args, four besties, all of them pulling up to the function with a job:
instanceβ the adapter soft state. Your controller's whole personality and current situation, in struct form. πdcmdβ the DCMD frame inside the MFI command. This is the thing that's about to get its DMA settings set, so like, she's the reason we're all here. πdma_addrβ the DMA address of the buffer that's getting passed to the FW. The "where is it" of it all. πdma_lenβ the length of that DMA buffer being passed to the FW. The "how big though" of it all. π
π RETURN π
void. Nothing. Nada. She gives, but she does not give back. π (Still slayed, obviously.)
π SEE ALSO π
π§ The kernel file
./drivers/scsi/megaraid/megaraid_sas_base.cβ the actual kernel file, iykyk. Go read it, it's literally right there.
π The whole extended friend group
And now the part where I introduce every single one of her mutuals, because nobody gets left out of the SEE ALSO list. Not one. This is the group chat roster, bestie:
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_set_dma_mask(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 roster. Every single one. Don't make me tap the sign. π
π«Ά Friendly reminder that this page lives under the source directory ./drivers/scsi/megaraid, dated October 2026, part of the Kernel API Manual. Screenshot it, cite it, print it out and put it on your wall like the little collector's item it is. Byeee πβ¨πΈ
π¦ 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