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