diff options
author | Tejun Heo <htejun@gmail.com> | 2007-10-29 03:45:05 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-10-29 06:21:33 -0400 |
commit | 4fb4615bc9465e7098665fa9616b6ac1f495f895 (patch) | |
tree | fdd760b7dd485cb21ca5f6547e3db2335589aed0 /drivers/ata | |
parent | cdeab1140799f09c5f728a5ff85e0bdfa5679cd2 (diff) |
libata: no need to speed down if already at PIO0
After reset, transfer mode is always PIO0 regardless of
dev->xfer_mask. Check dev->pio_mode before trying to slow down after
configuration failure. This prevents bogus speed down before device
is actually configured.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Acked-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/ata')
-rw-r--r-- | drivers/ata/libata-eh.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c index b237ff18b39e..ec55d63cf20e 100644 --- a/drivers/ata/libata-eh.c +++ b/drivers/ata/libata-eh.c | |||
@@ -2437,7 +2437,7 @@ static int ata_eh_handle_dev_fail(struct ata_device *dev, int err) | |||
2437 | /* give it just one more chance */ | 2437 | /* give it just one more chance */ |
2438 | ehc->tries[dev->devno] = min(ehc->tries[dev->devno], 1); | 2438 | ehc->tries[dev->devno] = min(ehc->tries[dev->devno], 1); |
2439 | case -EIO: | 2439 | case -EIO: |
2440 | if (ehc->tries[dev->devno] == 1) { | 2440 | if (ehc->tries[dev->devno] == 1 && dev->pio_mode > XFER_PIO_0) { |
2441 | /* This is the last chance, better to slow | 2441 | /* This is the last chance, better to slow |
2442 | * down than lose it. | 2442 | * down than lose it. |
2443 | */ | 2443 | */ |