libata: when restoring SControl during detach do the PMP links first
authorTejun Heo <tj@kernel.org>
Mon, 3 Nov 2008 11:03:49 +0000 (20:03 +0900)
committerJeff Garzik <jgarzik@redhat.com>
Mon, 29 Dec 2008 03:43:21 +0000 (22:43 -0500)
When restoring SControl during detach, PMP links should be handled
first as changing SControl of the host link can affect SCR access of
PMP links.

Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/ata/libata-core.c

index ffd98e4..1ecc3cb 100644 (file)
@@ -6123,7 +6123,7 @@ static void ata_port_detach(struct ata_port *ap)
        /* EH is now guaranteed to see UNLOADING - EH context belongs
         * to us.  Restore SControl and disable all existing devices.
         */
-       ata_for_each_link(link, ap, HOST_FIRST) {
+       ata_for_each_link(link, ap, PMP_FIRST) {
                sata_scr_write(link, SCR_CONTROL, link->saved_scontrol & 0xff0);
                ata_for_each_dev(dev, link, ALL)
                        ata_dev_disable(dev);