]> pilppa.com Git - linux-2.6-omap-h63xx.git/commitdiff
libata: use ULONG_MAX to terminate reset timeout table
authorTejun Heo <htejun@gmail.com>
Mon, 19 May 2008 17:17:53 +0000 (02:17 +0900)
committerJeff Garzik <jgarzik@redhat.com>
Mon, 14 Jul 2008 19:59:32 +0000 (15:59 -0400)
This doesn't introduce any functional changes.  This is to make reset
timeout table consistent with to-be-added command timeout tables.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/ata/libata-eh.c

index 5b5ae631ed037ed28f0bc1699285d2a5df3dfd84..83d1451fa7145b8280441773684aacd986aefe2a 100644 (file)
@@ -90,7 +90,7 @@ static const unsigned long ata_eh_reset_timeouts[] = {
        10000,  /* > 99% working drives spin up before 20sec */
        35000,  /* give > 30 secs of idleness for retarded devices */
         5000,  /* and sweet one last chance */
-       /* > 1 min has elapsed, give up */
+       ULONG_MAX, /* > 1 min has elapsed, give up */
 };
 
 static void __ata_port_freeze(struct ata_port *ap);
@@ -2077,13 +2077,12 @@ int ata_eh_reset(struct ata_link *link, int classify,
                 ata_prereset_fn_t prereset, ata_reset_fn_t softreset,
                 ata_reset_fn_t hardreset, ata_postreset_fn_t postreset)
 {
-       const int max_tries = ARRAY_SIZE(ata_eh_reset_timeouts);
        struct ata_port *ap = link->ap;
        struct ata_eh_context *ehc = &link->eh_context;
        unsigned int *classes = ehc->classes;
        unsigned int lflags = link->flags;
        int verbose = !(ehc->i.flags & ATA_EHI_QUIET);
-       int try = 0;
+       int max_tries = 0, try = 0;
        struct ata_device *dev;
        unsigned long deadline, now;
        ata_reset_fn_t reset;
@@ -2094,6 +2093,9 @@ int ata_eh_reset(struct ata_link *link, int classify,
        /*
         * Prepare to reset
         */
+       while (ata_eh_reset_timeouts[max_tries] != ULONG_MAX)
+               max_tries++;
+
        now = jiffies;
        deadline = ata_deadline(ehc->last_reset, ATA_EH_RESET_COOL_DOWN);
        if (time_before(now, deadline))