e1000e: fix scheduling while atomic bug
authorBruce Allan <bruce.w.allan@intel.com>
Tue, 7 May 2013 05:52:47 +0000 (22:52 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 7 May 2013 14:51:37 +0000 (07:51 -0700)
A scheduling while atomic bug was introduced recently (by commit
ce43a2168c59: "e1000e: cleanup USLEEP_RANGE checkpatch checks").

Revert the particular instance of usleep_range() which causes the bug.

Reported-by: Maarten Lankhorst <m.b.lankhorst@gmail.com>
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/net/ethernet/intel/e1000e/e1000.h

index 82f1c84282dbe5278f75f14e5c8913431ed902c7..ffbc08f56c40cd9f55c2753b74d294b5caa540b4 100644 (file)
@@ -600,7 +600,7 @@ static inline s32 __ew32_prepare(struct e1000_hw *hw)
        s32 i = E1000_ICH_FWSM_PCIM2PCI_COUNT;
 
        while ((er32(FWSM) & E1000_ICH_FWSM_PCIM2PCI) && --i)
-               usleep_range(50, 100);
+               udelay(50);
 
        return i;
 }