Title: [6864] trunk/drivers/ata/libata-core.c: Fix bug [#5216], enable_irq only after irq ready to handle
Revision
6864
Author
bhsong
Date
2009-06-29 03:34:52 -0500 (Mon, 29 Jun 2009)

Log Message

Fix bug [#5216], enable_irq only after irq ready to handle

Modified Paths

Diff

Modified: trunk/drivers/ata/libata-core.c (6863 => 6864)


--- trunk/drivers/ata/libata-core.c	2009-06-29 04:03:21 UTC (rev 6863)
+++ trunk/drivers/ata/libata-core.c	2009-06-29 08:34:52 UTC (rev 6864)
@@ -6051,6 +6051,11 @@
 
 	ata_scsi_scan_host(ap, 1);
 
+	/* enable irq after probe if it is asked to be disabled when request */
+	if (((ap - ap->host->ports[0]) / sizeof(*ap)) == (ap->host->n_ports - 1)) {
+		if (ap->host->irq_flags & IRQF_DISABLED)
+			enable_irq(ap->host->irq);
+	}
 }
 /**
  *	ata_host_register - register initialized ATA host
@@ -6127,10 +6132,6 @@
 			ata_port_printk(ap, KERN_INFO, "DUMMY\n");
 	}
 
-	/* enable irq after probe if it is asked to be disabled when request */
-	if (host->irq_flags & IRQF_DISABLED)
-		enable_irq(host->irq);
-
 	/* perform each probe asynchronously */
 	for (i = 0; i < host->n_ports; i++) {
 		struct ata_port *ap = host->ports[i];
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to