diff options
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 2bff9adcacf1..b3f7d3c8ae60 100644 --- a/drivers/ata/libata-eh.c +++ b/drivers/ata/libata-eh.c | |||
@@ -1558,14 +1558,14 @@ static void ata_eh_report(struct ata_port *ap) | |||
1558 | } | 1558 | } |
1559 | 1559 | ||
1560 | static int ata_do_reset(struct ata_port *ap, ata_reset_fn_t reset, | 1560 | static int ata_do_reset(struct ata_port *ap, ata_reset_fn_t reset, |
1561 | unsigned int *classes) | 1561 | unsigned int *classes, unsigned long deadline) |
1562 | { | 1562 | { |
1563 | int i, rc; | 1563 | int i, rc; |
1564 | 1564 | ||
1565 | for (i = 0; i < ATA_MAX_DEVICES; i++) | 1565 | for (i = 0; i < ATA_MAX_DEVICES; i++) |
1566 | classes[i] = ATA_DEV_UNKNOWN; | 1566 | classes[i] = ATA_DEV_UNKNOWN; |
1567 | 1567 | ||
1568 | rc = reset(ap, classes); | 1568 | rc = reset(ap, classes, deadline); |
1569 | if (rc) | 1569 | if (rc) |
1570 | return rc; | 1570 | return rc; |
1571 | 1571 | ||
@@ -1624,7 +1624,7 @@ static int ata_eh_reset(struct ata_port *ap, int classify, | |||
1624 | ehc->i.action |= ATA_EH_HARDRESET; | 1624 | ehc->i.action |= ATA_EH_HARDRESET; |
1625 | 1625 | ||
1626 | if (prereset) { | 1626 | if (prereset) { |
1627 | rc = prereset(ap); | 1627 | rc = prereset(ap, jiffies + 40 * HZ); |
1628 | if (rc) { | 1628 | if (rc) { |
1629 | if (rc == -ENOENT) { | 1629 | if (rc == -ENOENT) { |
1630 | ata_port_printk(ap, KERN_DEBUG, | 1630 | ata_port_printk(ap, KERN_DEBUG, |
@@ -1676,7 +1676,7 @@ static int ata_eh_reset(struct ata_port *ap, int classify, | |||
1676 | else | 1676 | else |
1677 | ehc->i.flags |= ATA_EHI_DID_SOFTRESET; | 1677 | ehc->i.flags |= ATA_EHI_DID_SOFTRESET; |
1678 | 1678 | ||
1679 | rc = ata_do_reset(ap, reset, classes); | 1679 | rc = ata_do_reset(ap, reset, classes, jiffies + 40 * HZ); |
1680 | 1680 | ||
1681 | did_followup_srst = 0; | 1681 | did_followup_srst = 0; |
1682 | if (reset == hardreset && | 1682 | if (reset == hardreset && |
@@ -1693,7 +1693,7 @@ static int ata_eh_reset(struct ata_port *ap, int classify, | |||
1693 | } | 1693 | } |
1694 | 1694 | ||
1695 | ata_eh_about_to_do(ap, NULL, ATA_EH_RESET_MASK); | 1695 | ata_eh_about_to_do(ap, NULL, ATA_EH_RESET_MASK); |
1696 | rc = ata_do_reset(ap, reset, classes); | 1696 | rc = ata_do_reset(ap, reset, classes, jiffies + 40 * HZ); |
1697 | 1697 | ||
1698 | if (rc == 0 && classify && | 1698 | if (rc == 0 && classify && |
1699 | classes[0] == ATA_DEV_UNKNOWN) { | 1699 | classes[0] == ATA_DEV_UNKNOWN) { |