Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9073868376ed5fa1f247327ccb2e6f766d5b7eed
Commit:     9073868376ed5fa1f247327ccb2e6f766d5b7eed
Parent:     94ff3d54080975686a3c41e73b8926030ee0c31f
Author:     Tejun Heo <[EMAIL PROTECTED]>
AuthorDate: Tue Oct 9 14:58:33 2007 +0900
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Fri Oct 12 14:55:46 2007 -0400

    libata: wrap schedule_timeout_uninterruptible() in loop
    
    Tasks in uninterruptible sleep might be woken up by unrelated events
    and should check whether the condition it was waiting for has actually
    triggered.  Wrap schedule_timeout_uninterruptible() in loop to achieve
    it.
    
    Signed-off-by: Tejun Heo <[EMAIL PROTECTED]>
    Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/ata/libata-eh.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index 866ac9d..8aa6140 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -2183,7 +2183,8 @@ int ata_eh_reset(struct ata_link *link, int classify,
                                "(errno=%d), retrying in %u secs\n",
                                rc, (jiffies_to_msecs(delta) + 999) / 1000);
 
-                       schedule_timeout_uninterruptible(delta);
+                       while (delta)
+                               delta = schedule_timeout_uninterruptible(delta);
                }
 
                if (rc == -EPIPE ||
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to