ata_eh_about_to_do(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… ata_eh_about_to_do(9)

Okay so bestie, welcome to the Kernel API Manual β€” this one's a tiny little function from the ATA error-handling corner of the kernel, and it's way less scary than the name makes it sound. Let's get into it ✨


🌸 NAME 🌸

ata_eh_about_to_do β€” literally "about to perform eh_action", the pre-game hype speech before the actual EH work happens 🎬


✨ SYNOPSIS ✨

void ata_eh_about_to_do (struct ata_link *link , struct ata_device *dev
, unsigned int action );

πŸŽ€ ARGUMENTS πŸŽ€

  • link β€” the target ATA link, i.e. the link we're doing the thing on 🫢
  • dev β€” the target ATA dev for the per-dev action. Heads up: this one can be NULL πŸ’€
  • action β€” the action that's about to be performed, the main character of this whole function πŸ‘‘

πŸ¦‹ DESCRIPTION πŸ¦‹

So here's the vibe: this gets called just before performing EH actions, and its whole job is to clear the related bits in link->eh_info so that eh actions don't get unnecessarily repeated. That's it. That's the function. Lowkey iconic for how much chaos it prevents πŸ™ˆ

It's literally the "okay we're doing this now, stop asking" of the ATA error handler. No cap.

πŸ”’ LOCKING πŸ”’

None. Zero. Nada. No locks here, bestie β€” go forth 🧚

Fr fr, the manpage says LOCKING: None. and we are not adding anything to that. Take it at face value πŸ’…

🌈 SEE ALSO 🌈

The kernel file is ./drivers/ata/libata-eh.c, and here's the full squad of related functions β€” every single one, because we don't gatekeep 🫢

__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_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_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)


πŸ’– That's the whole page, bestie! πŸ’–

This little masterpiece lives in ./drivers/ata, and it's dated October 2026 β€” so yeah, it's giving future icon energy πŸ‘‘ Go clear those eh_info bits and slay, periodt. πŸ’…βœ¨

πŸ“¦ where this page comes from