diff options
author | Kai-Heng Feng <kai.heng.feng@canonical.com> | 2018-09-11 01:51:43 +0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-09-12 00:05:33 -0700 |
commit | 6ad569019999300afd8e614d296fdc356550b77f (patch) | |
tree | a7a6ec1248a66f265fd71ee64358c3ac171e4e09 /net/rds | |
parent | 51dc63e3911fbb1f0a7a32da2fe56253e2040ea4 (diff) |
r8169: Clear RTL_FLAG_TASK_*_PENDING when clearing RTL_FLAG_TASK_ENABLED
After system suspend, sometimes the r8169 doesn't work when ethernet
cable gets pluggued.
This issue happens because rtl_reset_work() doesn't get called from
rtl8169_runtime_resume(), after system suspend.
In rtl_task(), RTL_FLAG_TASK_* only gets cleared if this condition is
met:
if (!netif_running(dev) ||
!test_bit(RTL_FLAG_TASK_ENABLED, tp->wk.flags))
...
If RTL_FLAG_TASK_ENABLED was cleared during system suspend while
RTL_FLAG_TASK_RESET_PENDING was set, the next rtl_schedule_task() won't
schedule task as the flag is still there.
So in addition to clearing RTL_FLAG_TASK_ENABLED, also clears other
flags.
Cc: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/rds')
0 files changed, 0 insertions, 0 deletions