Re: b44: regression in 2.6.22 (resend)

Stephen Hemminger
2007-05-29T21:18:05Z

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