diff options
author | Jesse Brandeburg <jesse.brandeburg@intel.com> | 2009-01-27 16:41:58 -0800 |
---|---|---|
committer | Willy Tarreau <w@1wt.eu> | 2009-06-07 21:36:39 +0200 |
commit | d5c575f0c0b56eb020c6501a71706d8f26dd9669 (patch) | |
tree | 194ff02f0bf33e4c69dcf10735e440e0cf3ee08d | |
parent | f75929935b4b5d460d13eb4e70ba8b93dd81140f (diff) | |
download | linux-2.4-d5c575f0c0b56eb020c6501a71706d8f26dd9669.tar.gz |
e1000: fix bug with shared interrupt during reset
(backported from 2.6 commit 15b2bee22a0390d951301b53e83df88d0350c499)
A nasty bug was found where an MTU change (or anything else that caused a
reset) could race with the interrupt code. The interrupt code was entered
by a shared interrupt during the MTU change.
This change prevents the interrupt code from running while the driver is in
the middle of its reset path.
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Willy Tarreau <w@1wt.eu>
-rw-r--r-- | drivers/net/e1000/e1000_main.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c index b3045a2ef226a..66db43687b4d9 100644 --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c @@ -3621,7 +3621,7 @@ e1000_intr(int irq, void *data) #ifndef CONFIG_E1000_NAPI int i; #endif - if (unlikely(!icr)) + if (unlikely((!icr) || test_bit(__E1000_RESETTING, &adapter->flags))) return IRQ_NONE; /* Not our interrupt */ #ifdef CONFIG_E1000_NAPI |