aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/ata/libata-eh.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index a6a3b1554c45..8077bdf5d30d 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -1164,6 +1164,7 @@ void ata_eh_detach_dev(struct ata_device *dev)
1164{ 1164{
1165 struct ata_link *link = dev->link; 1165 struct ata_link *link = dev->link;
1166 struct ata_port *ap = link->ap; 1166 struct ata_port *ap = link->ap;
1167 struct ata_eh_context *ehc = &link->eh_context;
1167 unsigned long flags; 1168 unsigned long flags;
1168 1169
1169 ata_dev_disable(dev); 1170 ata_dev_disable(dev);
@@ -1177,9 +1178,11 @@ void ata_eh_detach_dev(struct ata_device *dev)
1177 ap->pflags |= ATA_PFLAG_SCSI_HOTPLUG; 1178 ap->pflags |= ATA_PFLAG_SCSI_HOTPLUG;
1178 } 1179 }
1179 1180
1180 /* clear per-dev EH actions */ 1181 /* clear per-dev EH info */
1181 ata_eh_clear_action(link, dev, &link->eh_info, ATA_EH_PERDEV_MASK); 1182 ata_eh_clear_action(link, dev, &link->eh_info, ATA_EH_PERDEV_MASK);
1182 ata_eh_clear_action(link, dev, &link->eh_context.i, ATA_EH_PERDEV_MASK); 1183 ata_eh_clear_action(link, dev, &link->eh_context.i, ATA_EH_PERDEV_MASK);
1184 ehc->saved_xfer_mode[dev->devno] = 0;
1185 ehc->saved_ncq_enabled &= ~(1 << dev->devno);
1183 1186
1184 spin_unlock_irqrestore(ap->lock, flags); 1187 spin_unlock_irqrestore(ap->lock, flags);
1185} 1188}