ata_eh_analyze_tf(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ‘‘ ata_eh_analyze_tf β€” like, the ✨vibe check✨ for a failed qc

okay so bestie, we're in the Kernel API Manual (9 = kernel land, iykyk) and today's main character is ata_eh_analyze_tf. she's a libata error-handler girlie and she is so good at her job πŸ’…


🌸 NAME 🌸

ata_eh_analyze_tf β€” analyze the taskfile of a failed qc, no cap 🫢


✨ SYNOPSIS ✨

unsigned int ata_eh_analyze_tf (struct ata_queued_cmd *qc );

πŸŽ€ ARGUMENTS πŸŽ€

  • qc β€” the qc we're analyzing. that's it, that's the whole argument. she's lowkey low-maintenance πŸ’–

πŸ¦‹ DESCRIPTION πŸ¦‹

so here's the tea β˜• β€” this function analyzes the taskfile of qc and then goes further to figure out the actual cause of the failure. like, not just "something broke" but "here's why it broke". detective energy, main character behavior πŸ”₯

she also requests ATAPI sense data if it happens to be available. if there's more info to be had, she's getting it. obsessed 🧚

πŸ’€ LOCKING πŸ’€

Kernel thread context β€” and yes, it may sleep 😴 so do NOT call her from somewhere she can't catch some Z's, fr fr.


🌈 RETURN 🌈

she returns the determined recovery action. that's the whole point of the glow-up: you handed her a broken qc, she hands you back a decision. slay πŸ‘‘


πŸ”₯ SEE ALSO πŸ”₯

Kernel file ./drivers/ata/libata-eh.c, plus the entire extended friend group of libata error-handling besties β€” __ata_ehi_push_desc(9), ata_ehi_push_desc(9), ata_ehi_clear_desc(9), ata_port_desc(9), ata_port_pbar_desc(9), ata_internal_cmd_timeout(9), ata_internal_cmd_timed_out(9), ata_eh_acquire(9), ata_eh_release(9), ata_scsi_error(9), ata_scsi_cmd_error_handler(9), ata_scsi_port_error_handler(9), ata_port_wait_eh(9), ata_eh_set_pending(9), ata_qc_schedule_eh(9), ata_std_sched_eh(9), ata_std_end_eh(9), ata_port_schedule_eh(9), ata_link_abort(9), ata_port_abort(9), __ata_port_freeze(9), ata_port_freeze(9), ata_eh_freeze_port(9), ata_eh_thaw_port(9), ata_eh_qc_complete(9), ata_eh_qc_retry(9), ata_dev_disable(9), ata_eh_detach_dev(9), ata_eh_about_to_do(9), ata_eh_done(9), ata_err_string(9), atapi_eh_tur(9), ata_eh_decide_disposition(9), ata_eh_request_sense(9), atapi_eh_request_sense(9), ata_eh_analyze_serror(9), ata_eh_speed_down_verdict(9), ata_eh_speed_down(9), ata_eh_worth_retry(9), ata_eh_quiet(9), ata_eh_link_set_lpm(9), ata_eh_link_autopsy(9), ata_eh_autopsy(9), ata_get_cmd_name(9), ata_eh_link_report(9), ata_eh_report(9), ata_eh_set_mode(9), atapi_eh_clear_ua(9), ata_eh_maybe_retry_flush(9), ata_eh_recover(9), ata_eh_finish(9), ata_std_error_handler(9), ata_eh_handle_port_suspend(9), ata_eh_handle_port_resume(9) β€” literally the whole group chat, go read them all, i'm so serious πŸ’œ


and that's the page!! πŸŽ€πŸ¦‹βœ¨ brought to you straight from ./drivers/ata, dated October 2026, version vibes immaculate, source: the libata-eh.c cinematic universe. bye bestie, go analyze some taskfiles πŸ’–πŸ‘‘

πŸ“¦ where this page comes from