ata_eh_speed_down(9)
β¨ ata_eh_speed_down(9) β¨
okay so bestie, welcome to the Kernel API Manual π β this lil page is all about ata_eh_speed_down, and honestly? it's giving quiet-main-character energy in the libata error-handling saga π
πΈ NAME πΈ
ata_eh_speed_down β record the error and speed down if it's necessary, no cap π
π¦ SYNOPSIS π¦
unsigned int ata_eh_speed_down (struct ata_device *dev , unsigned int
eflags , unsigned int err_mask );
π ARGUMENTS π
devβ the failed device π like, the one that actually messed upeflagsβ a mask ofATA_EFLAG_*flags π©err_maskβ theerr_maskof the error π₯ (yes, it's the error's err_mask, we love a self-referential queen)
π DESCRIPTION π
So here's the vibe: it records the error, then it goes and examines the error history to figure out whether adjusting the transmission speed is actually necessary π€β¨ It also sets the transmission limits appropriately if such an adjustment turns out to be necessary β very "I'll fix it but only if it truly needs fixing" of it π«Ά
LOCKING: Kernel thread context (may sleep) π΄π€ β yes bestie, it's allowed to sleep, that's literally the note.
π RETURN π
It returns the determined recovery action β β that's the whole return situation, periodt.
π§ SEE ALSO π§
Kernel file ./drivers/ata/libata-eh.c β and like, the whole friend group π:
__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_analyze_tf(9), ata_eh_speed_down_verdict(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)
and that's the whole page, bestie π this one came from ./drivers/ata, dated October 2026 β so like, mark your calendar π
π
mwah, go read your error history π§ββοΈβ¨
π¦ 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