]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/net/b44.c
sis190: failure to set the MAC address from EEPROM
[linux-2.6-omap-h63xx.git] / drivers / net / b44.c
index 1ec217433b4cdc30fcbebe35b1df22b31d3df1ad..5eb2ec68393f1784418c5b6fdb7a5e43b0a9fb6e 100644 (file)
@@ -879,12 +879,14 @@ static int b44_poll(struct net_device *netdev, int *budget)
        }
 
        if (bp->istat & ISTAT_ERRORS) {
-               spin_lock_irq(&bp->lock);
+               unsigned long flags;
+
+               spin_lock_irqsave(&bp->lock, flags);
                b44_halt(bp);
                b44_init_rings(bp);
                b44_init_hw(bp, 1);
                netif_wake_queue(bp->dev);
-               spin_unlock_irq(&bp->lock);
+               spin_unlock_irqrestore(&bp->lock, flags);
                done = 1;
        }
 
@@ -908,8 +910,9 @@ static irqreturn_t b44_interrupt(int irq, void *dev_id)
        istat = br32(bp, B44_ISTAT);
        imask = br32(bp, B44_IMASK);
 
-       /* ??? What the fuck is the purpose of the interrupt mask
-        * ??? register if we have to mask it out by hand anyways?
+       /* The interrupt mask register controls which interrupt bits
+        * will actually raise an interrupt to the CPU when set by hw/firmware,
+        * but doesn't mask off the bits.
         */
        istat &= imask;
        if (istat) {