tg3: prevent scheduling while atomic splat
The problem was introduced in commit506b0a395f
("[netdrv] tg3: APE heartbeat changes"). The bug occurs because tp->lock spinlock is held which is obtained in tg3_start by way of tg3_full_lock(), line 11571. The documentation for usleep_range() specifically states it cannot be used inside a spinlock. Fixes:506b0a395f
("[netdrv] tg3: APE heartbeat changes") Signed-off-by: Jonathan Toppins <jtoppins@redhat.com> Acked-by: Michael Chan <michael.chan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d52e5a7e7c
commit
ea91df6d8a
@ -820,7 +820,7 @@ static int tg3_ape_event_lock(struct tg3 *tp, u32 timeout_us)
|
||||
|
||||
tg3_ape_unlock(tp, TG3_APE_LOCK_MEM);
|
||||
|
||||
usleep_range(10, 20);
|
||||
udelay(10);
|
||||
timeout_us -= (timeout_us > 10) ? 10 : timeout_us;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user