patch 7/7: ack unexpected INTRQ when polling. (Some device asserts INTRQ even if polling and nIEN = 1. http://bugzilla.kernel.org/show_bug.cgi?id=8441) Signed-off-by: Albert Lee <albertcc@xxxxxxxxxx> --- diff -Nrup 06_irq_wq/drivers/ata/libata-core.c 07_ack_random_irq/drivers/ata/libata-core.c --- 06_irq_wq/drivers/ata/libata-core.c 2007-05-11 11:54:56.000000000 +0800 +++ 07_ack_random_irq/drivers/ata/libata-core.c 2007-05-11 15:40:37.000000000 +0800 @@ -5211,9 +5211,12 @@ inline unsigned int ata_host_intr (struc if (ap->pflags & ATA_PFLAG_HSM_WQ) goto idle_irq; - /* polling */ - if (qc->tf.flags & ATA_TFLAG_POLLING) + /* polling, while HSM not yet active in wq */ + if (qc->tf.flags & ATA_TFLAG_POLLING) { + /* ack random irq */ + ata_chk_status(ap); goto idle_irq; + } /* Check whether we are expecting interrupt in this state */ switch (ap->hsm_task_state) { - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html