aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/libata-eh.c
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2009-01-29 06:31:33 -0500
committerJeff Garzik <jgarzik@redhat.com>2009-02-02 23:03:22 -0500
commita07d499b4759881db1359dd8812eecd00b0e0a28 (patch)
treeaaa5a5c95b64ab121ca89a71899abfe8837890f6 /drivers/ata/libata-eh.c
parent99cf610aa4840d822cdc67d194b23b55010ca9bd (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.c10
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 }