ata_wait_after_reset(9)
π ata_wait_after_reset(9) β the "hold up bestie, let the link get ready" manual page π
okay so this is ata_wait_after_reset(9), straight out of the Kernel API Manual, and honestly? it's giving "patience is a virtue" energy. it's a tiny little helper that just waits for a link to wake up and be ready after a reset. no cap. π¦
β¨ NAME β¨
ata_wait_after_reset β wait for link to become ready after reset
like, literally that. you reset the thing, then you sit there and wait for the link to be like "ok bestie i'm up π"
πΈ SYNOPSIS πΈ
int ata_wait_after_reset (struct ata_link *link , unsigned long deadline
, int (*check_ready)(struct ata_link *link) );
she takes three things and returns an int. iconic signature honestly π
π ARGUMENTS π
linkβ the link you're waiting on. this is the main character of the whole operation π«Άdeadlineβ the deadline in jiffies for the operation. like a timer, except instead of a cute countdown it's kernel time units β°check_readyβ a callback to check link readiness. you hand her a function, she keeps calling it like "u ready yet? u ready yet? π"
π₯ DESCRIPTION π₯
Wait for link to become ready after reset.
that's it. that's the whole vibe. you reset the link, and this function sits there refreshing like a group chat until the link finally comes online or the deadline runs out π
LOCKING: EH context. do NOT just rock up from anywhere, bestie β this is EH context only, periodt. π
β RETURN β
0if the link is ready before the deadline π slay- otherwise
-errnoπ it did not work out, and the errno tells you why
π§ SEE ALSO π§
okay this part is genuinely huge, someone went OFF. the kernel file this lives in is ./drivers/ata/libata-core.c, and here's the full squad of related functions β every single one, no skipping, 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_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_complete(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)
like i said. the whole squad. π
and that's the page, bestie β¨ source lives in ./drivers/ata, version dated October 2026, and this little manual entry is signed off with love from ata_wait_after_reset(9) β stay patient, stay ready, and always check your deadline ππ
π¦ 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