diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/ata/libata-core.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 99a18cea316a..c316eacbeddd 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c | |||
@@ -7210,18 +7210,14 @@ static void ata_port_detach(struct ata_port *ap) | |||
7210 | 7210 | ||
7211 | ata_port_wait_eh(ap); | 7211 | ata_port_wait_eh(ap); |
7212 | 7212 | ||
7213 | /* EH is now guaranteed to see UNLOADING, so no new device | 7213 | /* EH is now guaranteed to see UNLOADING - EH context belongs |
7214 | * will be attached. Disable all existing devices. | 7214 | * to us. Disable all existing devices. |
7215 | */ | 7215 | */ |
7216 | spin_lock_irqsave(ap->lock, flags); | ||
7217 | |||
7218 | ata_port_for_each_link(link, ap) { | 7216 | ata_port_for_each_link(link, ap) { |
7219 | ata_link_for_each_dev(dev, link) | 7217 | ata_link_for_each_dev(dev, link) |
7220 | ata_dev_disable(dev); | 7218 | ata_dev_disable(dev); |
7221 | } | 7219 | } |
7222 | 7220 | ||
7223 | spin_unlock_irqrestore(ap->lock, flags); | ||
7224 | |||
7225 | /* Final freeze & EH. All in-flight commands are aborted. EH | 7221 | /* Final freeze & EH. All in-flight commands are aborted. EH |
7226 | * will be skipped and retrials will be terminated with bad | 7222 | * will be skipped and retrials will be terminated with bad |
7227 | * target. | 7223 | * target. |