mirror of
https://github.com/torvalds/linux.git
synced 2024-12-19 01:23:20 +00:00
r8169: reset chip synchronously in __rtl8169_resume
Triggering an asynchronous reset is problematic for the following reasons, therefore reset the chip synchronously. - The reset routine resets registers and parameters behind our back what may collide with code executed after triggering the reset. - __rtl8169_resume() is called as part of pm_runtime_get_sync() and callers expect that the chip is fully resumed afterwards. In context of this driver triggering an asynchonous reset should be considered an emergency procedure. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
df320ed7b3
commit
58ba566ccb
@ -6787,9 +6787,8 @@ static void __rtl8169_resume(struct net_device *dev)
|
||||
rtl_lock_work(tp);
|
||||
napi_enable(&tp->napi);
|
||||
set_bit(RTL_FLAG_TASK_ENABLED, tp->wk.flags);
|
||||
rtl_reset_work(tp);
|
||||
rtl_unlock_work(tp);
|
||||
|
||||
rtl_schedule_task(tp, RTL_FLAG_TASK_RESET_PENDING);
|
||||
}
|
||||
|
||||
static int rtl8169_resume(struct device *device)
|
||||
|
Loading…
Reference in New Issue
Block a user