|
@@ -2979,12 +2979,13 @@ static int ata_eh_handle_dev_fail(struct ata_device *dev, int err)
|
|
|
/* give it just one more chance */
|
|
|
ehc->tries[dev->devno] = min(ehc->tries[dev->devno], 1);
|
|
|
case -EIO:
|
|
|
- if (ehc->tries[dev->devno] == 1 && dev->pio_mode > XFER_PIO_0) {
|
|
|
+ if (ehc->tries[dev->devno] == 1) {
|
|
|
/* This is the last chance, better to slow
|
|
|
* down than lose it.
|
|
|
*/
|
|
|
sata_down_spd_limit(ata_dev_phys_link(dev));
|
|
|
- ata_down_xfermask_limit(dev, ATA_DNXFER_PIO);
|
|
|
+ if (dev->pio_mode > XFER_PIO_0)
|
|
|
+ ata_down_xfermask_limit(dev, ATA_DNXFER_PIO);
|
|
|
}
|
|
|
}
|
|
|
|