|
@@ -2423,11 +2423,14 @@ int ata_eh_reset(struct ata_link *link, int classify,
|
|
}
|
|
}
|
|
|
|
|
|
/* prereset() might have cleared ATA_EH_RESET. If so,
|
|
/* prereset() might have cleared ATA_EH_RESET. If so,
|
|
- * bang classes and return.
|
|
|
|
|
|
+ * bang classes, thaw and return.
|
|
*/
|
|
*/
|
|
if (reset && !(ehc->i.action & ATA_EH_RESET)) {
|
|
if (reset && !(ehc->i.action & ATA_EH_RESET)) {
|
|
ata_for_each_dev(dev, link, ALL)
|
|
ata_for_each_dev(dev, link, ALL)
|
|
classes[dev->devno] = ATA_DEV_NONE;
|
|
classes[dev->devno] = ATA_DEV_NONE;
|
|
|
|
+ if ((ap->pflags & ATA_PFLAG_FROZEN) &&
|
|
|
|
+ ata_is_host_link(link))
|
|
|
|
+ ata_eh_thaw_port(ap);
|
|
rc = 0;
|
|
rc = 0;
|
|
goto out;
|
|
goto out;
|
|
}
|
|
}
|