ata_eh_speed_down(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ 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 up
  • eflags β€” a mask of ATA_EFLAG_* flags 🚩
  • err_mask β€” the err_mask of 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