r8169:fix "rtl_counters_cond == 1 (loop: 1000, delay: 10)" log spam.
authorChun-Hao Lin <hau@realtek.com>
Wed, 24 Feb 2016 06:18:42 +0000 (14:18 +0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 25 Feb 2016 21:17:45 +0000 (16:17 -0500)
commitf09cf4b7832d029fb22d8f476eac12fc27dde61f
treed21bd5a9bb76d2d0a6f0da759b779d111dc06b9d
parent9b368814b336b0a1a479135eb2815edbc00efd3c
r8169:fix "rtl_counters_cond == 1 (loop: 1000, delay: 10)" log spam.

There will be a log spam when there is no cable plugged. Please refer to
following links. https://bugzilla.kernel.org/show_bug.cgi?id=104351
https://bugzilla.kernel.org/show_bug.cgi?id=107421

This issue is caused by runtime power management. When there is no cable
plugged, the driver will be suspend (runtime suspend) by OS and NIC will be
put into the D3 state. During this time, if OS call rtl8169_get_stats64()
to dump tally counter, because NIC is in D3 state, the register value read
by driver will return all 0xff. This will let driver think tally counter
flag is not toggled and then sends the warning message "rtl_counters_cond
== 1 (loop: 1000, delay: 10)" to kernel log.

For fixing this issue, 1.add checking driver's pm runtime status in
rtl8169_get_stats64(). 2.dump tally counter before going runtime suspend
for counter accuracy in runtime suspend.

Signed-off-by: Chunhao Lin <hau@realtek.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/realtek/r8169.c