bna: Add Callback to Fix RXQ Stop
authorRasesh Mody <rmody@brocade.com>
Tue, 27 Sep 2011 10:39:10 +0000 (10:39 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 29 Sep 2011 23:36:36 +0000 (19:36 -0400)
commit5bcf6ac036556fcb4f9b5637f61e1227b66416cc
tree2e3da237d33194f1daf359f3b94fb2cd4eca0e24
parentaafd5c2c3cba257888450796b916a7335ee21236
bna: Add Callback to Fix RXQ Stop

Change details:
 - Add a callback in the BNA, which is called before sending FW command to stop
   RxQs. After this callback is called, driver should not post anymore Rx
   buffers to the RxQ. This addresses a small window where driver posts Rx
   buffers while FW is stopping/has stopped the RxQ.
 - Registering callback function, rx_stall_cbfn, during bna_rx_create.
   Invoking callback function, rx_stall_cbfn, before sending rx_cfg_clr
   command to FW
 - Bnad_cb_rx_stall implementation - set a flag in the Rxq to mark buffer
   posting disabled state. While posting buffers check for the above flag.

Signed-off-by: Gurunatha Karaje <gkaraje@brocade.com>
Signed-off-by: Rasesh Mody <rmody@brocade.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/brocade/bna/bna_tx_rx.c
drivers/net/ethernet/brocade/bna/bna_types.h
drivers/net/ethernet/brocade/bna/bnad.c
drivers/net/ethernet/brocade/bna/bnad.h