diff options
author | Tejun Heo <tj@kernel.org> | 2009-01-29 06:31:33 -0500 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2009-02-02 23:03:22 -0500 |
commit | a07d499b4759881db1359dd8812eecd00b0e0a28 (patch) | |
tree | aaa5a5c95b64ab121ca89a71899abfe8837890f6 /drivers/ata/libata-eh.c | |
parent | 99cf610aa4840d822cdc67d194b23b55010ca9bd (diff) |
libata: add @spd_limit to sata_down_spd_limit()
Add @spd_limit to sata_down_spd_limit() so that the caller can specify
the SPD limit it wants. This parameter doesn't get in the way even
when it's too low. The closest possible limit is applied.
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/ata/libata-eh.c')
-rw-r--r-- | drivers/ata/libata-eh.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c index 90092c1aae53..685509bc7ff0 100644 --- a/drivers/ata/libata-eh.c +++ b/drivers/ata/libata-eh.c | |||
@@ -1875,7 +1875,7 @@ static unsigned int ata_eh_speed_down(struct ata_device *dev, | |||
1875 | /* speed down? */ | 1875 | /* speed down? */ |
1876 | if (verdict & ATA_EH_SPDN_SPEED_DOWN) { | 1876 | if (verdict & ATA_EH_SPDN_SPEED_DOWN) { |
1877 | /* speed down SATA link speed if possible */ | 1877 | /* speed down SATA link speed if possible */ |
1878 | if (sata_down_spd_limit(link) == 0) { | 1878 | if (sata_down_spd_limit(link, 0) == 0) { |
1879 | action |= ATA_EH_RESET; | 1879 | action |= ATA_EH_RESET; |
1880 | goto done; | 1880 | goto done; |
1881 | } | 1881 | } |
@@ -2627,11 +2627,11 @@ int ata_eh_reset(struct ata_link *link, int classify, | |||
2627 | } | 2627 | } |
2628 | 2628 | ||
2629 | if (try == max_tries - 1) { | 2629 | if (try == max_tries - 1) { |
2630 | sata_down_spd_limit(link); | 2630 | sata_down_spd_limit(link, 0); |
2631 | if (slave) | 2631 | if (slave) |
2632 | sata_down_spd_limit(slave); | 2632 | sata_down_spd_limit(slave, 0); |
2633 | } else if (rc == -EPIPE) | 2633 | } else if (rc == -EPIPE) |
2634 | sata_down_spd_limit(failed_link); | 2634 | sata_down_spd_limit(failed_link, 0); |
2635 | 2635 | ||
2636 | if (hardreset) | 2636 | if (hardreset) |
2637 | reset = hardreset; | 2637 | reset = hardreset; |
@@ -3011,7 +3011,7 @@ static int ata_eh_handle_dev_fail(struct ata_device *dev, int err) | |||
3011 | /* This is the last chance, better to slow | 3011 | /* This is the last chance, better to slow |
3012 | * down than lose it. | 3012 | * down than lose it. |
3013 | */ | 3013 | */ |
3014 | sata_down_spd_limit(ata_dev_phys_link(dev)); | 3014 | sata_down_spd_limit(ata_dev_phys_link(dev), 0); |
3015 | if (dev->pio_mode > XFER_PIO_0) | 3015 | if (dev->pio_mode > XFER_PIO_0) |
3016 | ata_down_xfermask_limit(dev, ATA_DNXFER_PIO); | 3016 | ata_down_xfermask_limit(dev, ATA_DNXFER_PIO); |
3017 | } | 3017 | } |