Commit:     914616a3c2a54504f3b0eda0b67fcd32226b3e83
Parent:     09d7f9b0658072485a93247e1b6e15e661f860d2
Author:     Tejun Heo <[EMAIL PROTECTED]>
AuthorDate: Mon Jun 25 21:47:11 2007 +0900
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Wed Jun 27 02:44:21 2007 -0400

    libata: fix infinite EH waiting bug
    When EH gives up after repeated exceptions, it doesn't't clear the
    PENDING bit on exit which leaves PENDING bit set without EH actually
    scheduled.  This makes ata_port_wait_eh() to wait forever makes rmmod
    hang on such port.  Fix it by clearing the flag.
    Signed-off-by: Tejun Heo <[EMAIL PROTECTED]>
    Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
 drivers/ata/libata-eh.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index 45f81ad..f7582c9 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -336,6 +336,7 @@ void ata_scsi_error(struct Scsi_Host *host)
                        ata_port_printk(ap, KERN_ERR, "EH pending after %d "
                                        "tries, giving up\n", 
+                       ap->pflags &= ~ATA_PFLAG_EH_PENDING;
                /* this run is complete, make sure EH info is clear */
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

Reply via email to