Commit ff2a84b1 authored by Jeff Garzik's avatar Jeff Garzik

[netdrvr tg3] detect shared (and screaming) interrupts

parent 83e410b8
...@@ -2154,6 +2154,7 @@ static irqreturn_t tg3_interrupt(int irq, void *dev_id, struct pt_regs *regs) ...@@ -2154,6 +2154,7 @@ static irqreturn_t tg3_interrupt(int irq, void *dev_id, struct pt_regs *regs)
struct tg3 *tp = dev->priv; struct tg3 *tp = dev->priv;
struct tg3_hw_status *sblk = tp->hw_status; struct tg3_hw_status *sblk = tp->hw_status;
unsigned long flags; unsigned long flags;
unsigned int handled = 1;
spin_lock_irqsave(&tp->lock, flags); spin_lock_irqsave(&tp->lock, flags);
...@@ -2184,11 +2185,13 @@ static irqreturn_t tg3_interrupt(int irq, void *dev_id, struct pt_regs *regs) ...@@ -2184,11 +2185,13 @@ static irqreturn_t tg3_interrupt(int irq, void *dev_id, struct pt_regs *regs)
0x00000000); 0x00000000);
tr32(MAILBOX_INTERRUPT_0 + TG3_64BIT_REG_LOW); tr32(MAILBOX_INTERRUPT_0 + TG3_64BIT_REG_LOW);
} }
} else { /* shared interrupt */
handled = 0;
} }
spin_unlock_irqrestore(&tp->lock, flags); spin_unlock_irqrestore(&tp->lock, flags);
return IRQ_HANDLED; return IRQ_RETVAL(handled);
} }
static void tg3_init_rings(struct tg3 *); static void tg3_init_rings(struct tg3 *);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment