__ata_port_freeze(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ __ata_port_freeze(9) β€” Kernel API Manual πŸ¦‹

okay so bestie, welcome to the Kernel API Manual page for __ata_port_freeze(9). it's giving emergency-freeze-for-an-ATA-port energy, and honestly? iconic. πŸ’…

🌸 NAME 🌸

__ata_port_freeze - freeze port

✨ SYNOPSIS ✨

void __ata_port_freeze (struct ata_port *ap );

πŸŽ€ ARGUMENTS πŸŽ€

  • ap β€” ATA port to freeze. that's the port getting frozen, no cap. 🧊

πŸ’… DESCRIPTION πŸ’…

This function is called when an HSM violation or some other condition disrupts normal operation of the port. HSM violation? yes. some other condition? also yes. either way, the port is not having a normal one. 😭

A frozen port is not allowed to perform any operation until the port is thawed, which usually follows a successful reset. so it's lowkey on pause until the reset goes through. ⏸️✨

The ap->ops->freeze callback can be used for freezing the port hardware-wise (e.g. mask interrupt and stop DMA engine). if you can freeze it at the hardware level, that's the move. πŸ’…

If a port cannot be frozen hardware-wise, the interrupt handler must ack and clear interrupts unconditionally while the port is frozen. that's a hard must, bestie β€” no skipping it. 🫢

LOCKING: spin_lock_irqsave(host lock) β€” that's the locking rule, periodt. πŸ”’

πŸ”₯ SEE ALSO πŸ”₯

Kernel file ./drivers/ata/libata-eh.c β€” and here's the whole friend group:

mwah πŸ’– this page lives in the Kernel API Manual, comes from ./drivers/ata, is dated October 2026, and answers to __ata_port_freeze(9). slay.

πŸ“¦ where this page comes from