ata_qc_complete(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

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

okay so bestie, welcome to the Kernel API Manual page for ata_qc_complete(9) β€” the little function that announces an ATA command is done. We're keeping every detail, no cap. πŸ’…


🌸 NAME 🌸

ata_qc_complete β€” complete an active ATA command ✨

πŸ¦‹ SYNOPSIS πŸ¦‹

void ata_qc_complete (struct ata_queued_cmd *qc );

πŸŽ€ ARGUMENTS πŸŽ€

  • qc β€” the command to complete πŸ’–

πŸ’œ DESCRIPTION πŸ’œ

This is literally the β€œhey bestie, it’s done” signal to the mid and upper layers that an ATA command has completed, with either an ok or not-ok status. Periodt.

⚠️ Do not call this function multiple times when you’re successfully completing multiple NCQ commands. Use ata_qc_complete_multiple instead β€” that one will properly update IRQ expect state. This is the rule, okay? 😭

LOCKING: spin_lock_irqsave(host lock)


🌈 SEE ALSO 🌈

Kernel file ./drivers/ata/libata-core.c, plus the whole squad below β€” in order, zero skips, iykyk:

ata_link_next(9)
ata_dev_next(9)
ata_dev_phys_link(9)
ata_force_cbl(9)
ata_force_pflags(9)
ata_force_link_limits(9)
ata_force_xfermask(9)
ata_force_quirks(9)
atapi_cmd_type(9)
ata_set_rwcmd_protocol(9)
ata_tf_read_block(9)
ata_build_rw_tf(9)
ata_pack_xfermask(9)
ata_unpack_xfermask(9)
ata_xfer_mask2mode(9)
ata_xfer_mode2mask(9)
ata_xfer_mode2shift(9)
ata_mode_string(9)
ata_dev_classify(9)
ata_id_string(9)
ata_id_c_string(9)
ata_read_native_max_address(9)
ata_set_max_sectors(9)
ata_hpa_resize(9)
ata_dump_id(9)
ata_id_xfermask(9)
ata_exec_internal(9)
ata_pio_need_iordy(9)
ata_pio_mask_no_iordy(9)
ata_do_dev_read_id(9)
ata_dev_read_id(9)
ata_dev_power_set_standby(9)
ata_dev_power_set_active(9)
ata_read_log_page(9)
ata_dev_configure(9)
ata_cable_40wire(9)
ata_cable_80wire(9)
ata_cable_unknown(9)
ata_cable_ignore(9)
ata_cable_sata(9)
sata_print_link_status(9)
ata_dev_pair(9)
ata_timing_cycle2mode(9)
ata_down_xfermask_limit(9)
ata_set_mode(9)
ata_wait_ready(9)
ata_wait_after_reset(9)
ata_std_prereset(9)
ata_std_postreset(9)
ata_dev_same_device(9)
ata_dev_reread_id(9)
ata_dev_revalidate(9)
ata_is_40wire(9)
cable_is_40wire(9)
ata_dev_xfermask(9)
ata_dev_set_xfermode(9)
ata_dev_set_feature(9)
ata_dev_init_params(9)
atapi_check_dma(9)
ata_std_qc_defer(9)
ata_sg_init(9)
ata_sg_clean(9)
ata_sg_setup(9)
swap_buf_le16(9)
ata_qc_free(9)
ata_qc_get_active(9)
ata_qc_issue(9)
ata_phys_link_online(9)
ata_phys_link_offline(9)
ata_link_online(9)
ata_link_offline(9)
ata_host_suspend(9)
ata_host_resume(9)
ata_dev_init(9)
ata_link_init(9)
sata_link_init_spd(9)
ata_port_alloc(9)
ata_host_alloc(9)
ata_host_alloc_pinfo(9)
ata_finalize_port_ops(9)
ata_host_start(9)
ata_host_init(9)
ata_host_register(9)
ata_host_activate(9)
ata_dev_free_resources(9)
ata_port_detach(9)
ata_host_detach(9)
ata_pci_remove_one(9)
ata_platform_remove_one(9)
ata_msleep(9)
ata_wait_register(9)

πŸ’Œ cute sign-off: source ./drivers/ata β€’ date October 2026 β€’ page ata_qc_complete(9) β€” that’s the whole page, mwah πŸ’‹

πŸ“¦ where this page comes from