Re: b44: regression in 2.6.22 (resend)

From: Stephen Hemminger
Date: Tue May 29 2007 - 17:18:06 EST


I am busy bisecting the real cause. Unfortunately, oprofile doesn't work
on the laptop, and build time sucks...

This how I think the IRQ should work:

--- a/drivers/net/b44.c 2007-05-29 09:47:53.000000000 -0700
+++ b/drivers/net/b44.c 2007-05-29 09:49:50.000000000 -0700
@@ -908,9 +908,11 @@ static irqreturn_t b44_interrupt(int irq
u32 istat, imask;
int handled = 0;

- spin_lock(&bp->lock);
-
istat = br32(bp, B44_ISTAT);
+ if (istat == 0 || istat == ~0)
+ return IRQ_NONE;
+
+ spin_lock(&bp->lock);
imask = br32(bp, B44_IMASK);

/* The interrupt mask register controls which interrupt bits
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/