]> git.baikalelectronics.ru Git - kernel.git/commit
bna: tx rx cleanup fix
authorJing Huang <huangj@Brocade.COM>
Wed, 4 Apr 2012 05:43:18 +0000 (05:43 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 4 Apr 2012 22:19:17 +0000 (18:19 -0400)
commitadee68a52f2dfbb98f4c47a3e3b7c2c99cc0022e
tree5b9d69d6da18ee0dc770f48e01e9139530743534
parent64a5554961faf2fc1e2161c6fb2d69789dbd8ff5
bna: tx rx cleanup fix

This patch removes busy wait in tx/rx cleanup. bnad_cb_tx_cleanup() and
bnad_cb_rx_cleanup() functions are called from irq context, and currently
they do busy wait for the in-flight transmit or the currently executing napi
polling routine to complete. To fix the issue, we create a workqueue to defer
tx & rx cleanup processing, an in the tx rx cleanup handler, we will
wait respective in flight processing to complete, before freeing the buffers.

Signed-off-by: Jing Huang <huangj@brocade.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/brocade/bna/bnad.c
drivers/net/ethernet/brocade/bna/bnad.h