[PATCH kernel 2.6.32-git7] 3c574_cs: disable irq before calling el3_interrupt
From: Ken Kawasaki <hidden>
Date: 2009-12-13 01:15:42
3c574_cs, 3c589_cs: disable irq before calling el3_interrupt in the media_check function. Signed-off-by: Ken Kawasaki <redacted> ---
--- linux-2.6.32-git7/drivers/net/pcmcia/3c574_cs.c.orig 2009-12-12 06:58:14.000000000 +0900
+++ linux-2.6.32-git7/drivers/net/pcmcia/3c574_cs.c 2009-12-13 08:50:18.000000000 +0900@@ -912,7 +912,11 @@ static void media_check(unsigned long ar if ((inw(ioaddr + EL3_STATUS) & IntLatch) && (inb(ioaddr + Timer) == 0xff)) { if (!lp->fast_poll) printk(KERN_INFO "%s: interrupt(s) dropped!\n", dev->name); + + local_irq_save(flags); el3_interrupt(dev->irq, dev); + local_irq_restore(flags); + lp->fast_poll = HZ; } if (lp->fast_poll) { --- linux-2.6.32-git7/drivers/net/pcmcia/3c589_cs.c.orig 2009-12-12 06:58:28.000000000 +0900 +++ linux-2.6.32-git7/drivers/net/pcmcia/3c589_cs.c 2009-12-13 08:50:38.000000000 +0900
@@ -711,7 +711,11 @@ static void media_check(unsigned long ar (inb(ioaddr + EL3_TIMER) == 0xff)) { if (!lp->fast_poll) printk(KERN_WARNING "%s: interrupt(s) dropped!\n", dev->name); + + local_irq_save(flags); el3_interrupt(dev->irq, dev); + local_irq_restore(flags); + lp->fast_poll = HZ; } if (lp->fast_poll) {