• Rasesh Mody's avatar
    bna: Interrupt Polling and NAPI Init Changes · 2be67144
    Rasesh Mody authored
    Change details:
     - Remove unnecessary ccb check from bnad_poll_cq
     - Add bnad pointer to rx_ctrl structure, so that bnad can be accessed directly
       from rx_ctrl in the NAPI poll routines, even if ccb is NULL
     - Validate ccb before referencing to it in bnad_msix_rx and bnad_napi_poll_rx
     - Fix the order of NAPI init / uninit in Tx / Rx setup / teardown path:
       a. Kill bnad tx free tasklet ahead of call to bna_tx_destroy()
       b. Call NAPI disable only after call to Rx free_irq(). This makes sure Rx
          interrupt does not schedule a poll when NAPI is already disabled
     - NAPI poll runs before the h/w has completed configuration. This causes a
       crash. Delay enabling NAPI till after bna_rx_enable(). Split NAPI
       initialization into 2 steps, bnad_napi_init() & bnad_napi_enable().
    Signed-off-by: default avatarGurunatha Karaje <gkaraje@brocade.com>
    Signed-off-by: default avatarRasesh Mody <rmody@brocade.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    2be67144
bnad.c 82.4 KB