]> 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)
commitcc469c468531c257ad8b406d4c82e220b318bf72
tree5b9d69d6da18ee0dc770f48e01e9139530743534
parent6af2fcc727242235faf983be5de833b0008eea5c
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