Skip to content

Commit

Permalink
r6040: restore MIER register correctly when IRQ line is shared
Browse files Browse the repository at this point in the history
When the r6040 device IRQ line is shared we will enter the driver
interrupt service routine, mask off the device interrupt enable
register (MIER) and return with IRQ_NONE, we would then leave the
device with interrupts disabled, this patch fixes that issue.

Reported-by: Steve Holland <[email protected]>
Signed-off-by: Joe Chou <[email protected]>
Signed-off-by: Florian Fainelli <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
ffainelli authored and davem330 committed Jul 8, 2009
1 parent 345aa03 commit 35976d4
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion drivers/net/r6040.c
Original file line number Diff line number Diff line change
Expand Up @@ -704,8 +704,11 @@ static irqreturn_t r6040_interrupt(int irq, void *dev_id)
/* Read MISR status and clear */
status = ioread16(ioaddr + MISR);

if (status == 0x0000 || status == 0xffff)
if (status == 0x0000 || status == 0xffff) {
/* Restore RDC MAC interrupt */
iowrite16(misr, ioaddr + MIER);
return IRQ_NONE;
}

/* RX interrupt request */
if (status & RX_INTS) {
Expand Down

0 comments on commit 35976d4

Please sign in to comment.