aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorKen Kawasaki <ken_kawasaki@spring.nifty.jp>2009-12-12 09:44:11 -0500
committerDavid S. Miller <davem@davemloft.net>2009-12-13 22:47:43 -0500
commit671c8806c25d06407e348690c09d7c37521eda32 (patch)
treedac56b7f12e713ad149c35f7d1e1a866c627b1d7 /drivers
parente0802793f6f65242760089d8d85a50098706dd26 (diff)
3c574_cs: disable irq before calling el3_interrupt
3c574_cs, 3c589_cs: disable irq before calling el3_interrupt in the media_check function. Signed-off-by: Ken Kawasaki <ken_kawasaki@spring.nifty.jp> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/pcmcia/3c574_cs.c4
-rw-r--r--drivers/net/pcmcia/3c589_cs.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/pcmcia/3c574_cs.c b/drivers/net/pcmcia/3c574_cs.c
index 17a27225cc98..98938ea9e0bd 100644
--- a/drivers/net/pcmcia/3c574_cs.c
+++ b/drivers/net/pcmcia/3c574_cs.c
@@ -912,7 +912,11 @@ static void media_check(unsigned long arg)
912 if ((inw(ioaddr + EL3_STATUS) & IntLatch) && (inb(ioaddr + Timer) == 0xff)) { 912 if ((inw(ioaddr + EL3_STATUS) & IntLatch) && (inb(ioaddr + Timer) == 0xff)) {
913 if (!lp->fast_poll) 913 if (!lp->fast_poll)
914 printk(KERN_INFO "%s: interrupt(s) dropped!\n", dev->name); 914 printk(KERN_INFO "%s: interrupt(s) dropped!\n", dev->name);
915
916 local_irq_save(flags);
915 el3_interrupt(dev->irq, dev); 917 el3_interrupt(dev->irq, dev);
918 local_irq_restore(flags);
919
916 lp->fast_poll = HZ; 920 lp->fast_poll = HZ;
917 } 921 }
918 if (lp->fast_poll) { 922 if (lp->fast_poll) {
diff --git a/drivers/net/pcmcia/3c589_cs.c b/drivers/net/pcmcia/3c589_cs.c
index 6f8d7e2e5922..322e11df0097 100644
--- a/drivers/net/pcmcia/3c589_cs.c
+++ b/drivers/net/pcmcia/3c589_cs.c
@@ -711,7 +711,11 @@ static void media_check(unsigned long arg)
711 (inb(ioaddr + EL3_TIMER) == 0xff)) { 711 (inb(ioaddr + EL3_TIMER) == 0xff)) {
712 if (!lp->fast_poll) 712 if (!lp->fast_poll)
713 printk(KERN_WARNING "%s: interrupt(s) dropped!\n", dev->name); 713 printk(KERN_WARNING "%s: interrupt(s) dropped!\n", dev->name);
714
715 local_irq_save(flags);
714 el3_interrupt(dev->irq, dev); 716 el3_interrupt(dev->irq, dev);
717 local_irq_restore(flags);
718
715 lp->fast_poll = HZ; 719 lp->fast_poll = HZ;
716 } 720 }
717 if (lp->fast_poll) { 721 if (lp->fast_poll) {