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 | |
| 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>
| -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) { |
