r8169: reset chip synchronously in __rtl8169_resume
authorHeiner Kallweit <hkallweit1@gmail.com>
Sat, 19 Jan 2019 21:06:25 +0000 (22:06 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sun, 20 Jan 2019 00:09:14 +0000 (16:09 -0800)
commit58ba566ccbae0ec629ab9e36006d1b79765fe252
tree3fcc7928b2998df186c4daacd2582888d20d4e13
parentdf320ed7b3e46c93a57eb77c71228415bcd5b8b8
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>
drivers/net/ethernet/realtek/r8169.c