diff options
author | Ken Kawasaki <ken_kawasaki@spring.nifty.jp> | 2009-12-12 09:44:11 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-12-13 22:47:43 -0500 |
commit | 671c8806c25d06407e348690c09d7c37521eda32 (patch) | |
tree | dac56b7f12e713ad149c35f7d1e1a866c627b1d7 /drivers/net/pcmcia | |
parent | e0802793f6f65242760089d8d85a50098706dd26 (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/net/pcmcia')
-rw-r--r-- | drivers/net/pcmcia/3c574_cs.c | 4 | ||||
-rw-r--r-- | drivers/net/pcmcia/3c589_cs.c | 4 |
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) { |