Thread (9 messages) 9 messages, 2 authors, 2007-01-26

Re: [PATCH] ahci: improve and limit spurious interrupt messages, take#2

From: Jeff Garzik <hidden>
Date: 2007-01-25 01:24:44

Tejun Heo wrote:
-	/* ignore interim PIO setup fis interrupts */
-	if (ata_tag_valid(ap->active_tag) && (status & PORT_IRQ_PIOS_FIS))
-		return;
+	if ((status & PORT_IRQ_D2H_REG_FIS) &&
+	    !(pp->seen_status & PORT_IRQ_D2H_REG_FIS)) {
+		ata_port_printk(ap, KERN_INFO, "D2H reg with I during NCQ, "
+				"this message won't be printed again\n");
+		pp->seen_status |= PORT_IRQ_D2H_REG_FIS;
+	} else if ((status & PORT_IRQ_DMAS_FIS) &&
+		   !(pp->seen_status & PORT_IRQ_DMAS_FIS)) {
+		ata_port_printk(ap, KERN_INFO, "DMAS FIS during NCQ, "
+				"this message won't be printed again\n");
+		pp->seen_status |= PORT_IRQ_DMAS_FIS;
+	} else if (status & PORT_IRQ_SDB_FIS && pp->spurious_sdb_cnt < 10) {
+		/* SDB FIS containing spurious completions might be
+		 * dangerous, we need to know more about them.  Print
+		 * more of it.
+		 */
+		const u32 *f = pp->rx_fis + RX_FIS_SDB;

This if/else/else tree does not take into account the possiblity that 
more than one bit may be set.

	Jeff

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help