summaryrefslogtreecommitdiffstats
path: root/drivers/ata
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2008-11-03 12:03:49 +0100
committerJeff Garzik <jgarzik@redhat.com>2008-12-29 04:43:21 +0100
commitad74e4c18d0962397314460d0da312e72c8bd02d (patch)
treea2839731f70b44cca5e74b614dfb4de5a0d22c61 /drivers/ata
parentlibata: beef up iterators (diff)
downloadlinux-ad74e4c18d0962397314460d0da312e72c8bd02d.tar.xz
linux-ad74e4c18d0962397314460d0da312e72c8bd02d.zip
libata: when restoring SControl during detach do the PMP links first
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>
Diffstat (limited to 'drivers/ata')
-rw-r--r--drivers/ata/libata-core.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index ffd98e4e65b4..1ecc3cb0b722 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -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);