]> git.baikalelectronics.ru Git - kernel.git/commit
aquantia: Fix Tx queue hangups
authorIgor Russkikh <igor.russkikh@aquantia.com>
Mon, 25 Sep 2017 07:48:48 +0000 (10:48 +0300)
committerDavid S. Miller <davem@davemloft.net>
Tue, 26 Sep 2017 20:44:31 +0000 (13:44 -0700)
commitb3a5ceec8819c2f4b679fd7ed2d9ff2ab558d2b1
tree343643f24c6b268e14a8025c2da5701d04caf680
parent23482dc2e8192cdc90cc5c2d7920edc871181513
aquantia: Fix Tx queue hangups

Driver did a poor job in managing its Tx queues: Sometimes it could stop
tx queues due to link down condition in aq_nic_xmit - but never waked up
them. That led to Tx path total suspend.
This patch fixes this and improves generic queue management:
- introduces queue restart counter
- uses generic netif_ interface to disable and enable tx path
- refactors link up/down condition and introduces dmesg log event when
  link changes.
- introduces new constant for minimum descriptors count required for queue
  wakeup

Signed-off-by: Pavel Belous <Pavel.Belous@aquantia.com>
Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/aquantia/atlantic/aq_cfg.h
drivers/net/ethernet/aquantia/atlantic/aq_nic.c
drivers/net/ethernet/aquantia/atlantic/aq_nic.h
drivers/net/ethernet/aquantia/atlantic/aq_ring.c
drivers/net/ethernet/aquantia/atlantic/aq_ring.h
drivers/net/ethernet/aquantia/atlantic/aq_vec.c