diff options
author | Jesse Brandeburg <jesse.brandeburg@intel.com> | 2008-10-02 19:33:25 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-02 21:28:12 -0400 |
commit | a8f88ff5a5abc2ce9f7d7d2694178b2c617d713a (patch) | |
tree | eb621b61dc32327b52f80911b73956c7515df7ae /drivers/net/e1000e/e1000.h | |
parent | 37f40239f49fbc0b489d0327a700fee5b3898ac2 (diff) |
e1000e: do not ever sleep in interrupt context
e1000e was apparently calling two functions that attempted to reserve
the SWFLAG bit for exclusive (to hardware and firmware) access to
the PHY and NVM (aka eeprom). These accesses could possibly call
msleep to wait for the resource which is not allowed from interrupt
context.
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/net/e1000e/e1000.h')
-rw-r--r-- | drivers/net/e1000e/e1000.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/e1000e/e1000.h b/drivers/net/e1000e/e1000.h index f0c48a2a6799..8087bda97218 100644 --- a/drivers/net/e1000e/e1000.h +++ b/drivers/net/e1000e/e1000.h | |||
@@ -284,6 +284,8 @@ struct e1000_adapter { | |||
284 | unsigned long led_status; | 284 | unsigned long led_status; |
285 | 285 | ||
286 | unsigned int flags; | 286 | unsigned int flags; |
287 | struct work_struct downshift_task; | ||
288 | struct work_struct update_phy_task; | ||
287 | }; | 289 | }; |
288 | 290 | ||
289 | struct e1000_info { | 291 | struct e1000_info { |