]> git.baikalelectronics.ru Git - kernel.git/commit
Merge branch 'r8152-napi-fixes'
authorDavid S. Miller <davem@davemloft.net>
Thu, 26 Jan 2017 03:47:31 +0000 (22:47 -0500)
committerDavid S. Miller <davem@davemloft.net>
Thu, 26 Jan 2017 03:47:31 +0000 (22:47 -0500)
commit2067a71cca2b05683b4288a41a65bc5baa3a2dc6
tree79ca0e6d3f49de50e4f20e4724400dbd47df5ba4
parentbcd0ae82fd9ba3a575cc671174392d1305efd2c3
parent06b7c72a669b9d83e44fa7c4a5204ab7cda6bd06
Merge branch 'r8152-napi-fixes'

Hayes Wang says:

====================
r8152: fix scheduling napi

v3:
simply the argument for patch #3. Replace &tp->napi with napi.

v2:
Add smp_mb__after_atomic() for patch #1.

v1:
Scheduling the napi during the following periods would let it be ignored.
And the events wouldn't be handled until next napi_schedule() is called.

1. after napi_disable and before napi_enable().
2. after all actions of napi function is completed and before calling
   napi_complete().

If no next napi_schedule() is called, tx or rx would stop working.

In order to avoid these situations, the followings solutions are applied.

1. prevent start_xmit() from calling napi_schedule() during runtime suspend
   or after napi_disable().
2. re-schedule the napi for tx if it is necessary.
3. check if any rx is finished or not after napi_enable().
====================

Signed-off-by: David S. Miller <davem@davemloft.net>