|
@@ -999,7 +999,9 @@ static void __ata_port_freeze(struct ata_port *ap)
|
|
|
* ata_port_freeze - abort & freeze port
|
|
|
* @ap: ATA port to freeze
|
|
|
*
|
|
|
- * Abort and freeze @ap.
|
|
|
+ * Abort and freeze @ap. The freeze operation must be called
|
|
|
+ * first, because some hardware requires special operations
|
|
|
+ * before the taskfile registers are accessible.
|
|
|
*
|
|
|
* LOCKING:
|
|
|
* spin_lock_irqsave(host lock)
|
|
@@ -1013,8 +1015,8 @@ int ata_port_freeze(struct ata_port *ap)
|
|
|
|
|
|
WARN_ON(!ap->ops->error_handler);
|
|
|
|
|
|
- nr_aborted = ata_port_abort(ap);
|
|
|
__ata_port_freeze(ap);
|
|
|
+ nr_aborted = ata_port_abort(ap);
|
|
|
|
|
|
return nr_aborted;
|
|
|
}
|