ata_eh_analyze_tf(9)
π 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
- 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