From: Zhu Yanjun <yanjun....@oracle.com>
Date: Sat, 11 Nov 2017 10:42:03 -0500

> When "NETDEV WATCHDOG: em4 (bnx2x): transmit queue 2 timed out" occurs,
> BNX2X_SP_RTNL_TX_TIMEOUT is set. In the function bnx2x_sp_rtnl_task,
> bnx2x_nic_unload and bnx2x_nic_load are executed to shutdown and open
> NIC. In the function bnx2x_nic_load, bnx2x_alloc_mem allocates dma
> failure. The message "bnx2x: [bnx2x_alloc_mem:8399(em4)]Can't
> allocate memory" pops out. The variable slowpath is set to NULL.
> When shutdown the NIC, the function bnx2x_nic_unload is called. In
> the function bnx2x_nic_unload, the following functions are executed.
> bnx2x_chip_cleanup
>     bnx2x_set_storm_rx_mode
>         bnx2x_set_q_rx_mode
>             bnx2x_set_q_rx_mode
>                 bnx2x_config_rx_mode
>                     bnx2x_set_rx_mode_e2
> In the function bnx2x_set_rx_mode_e2, the variable slowpath is operated.
> Then the crash occurs.
> To fix this crash, the variable slowpath is checked. And in the function
> bnx2x_sp_rtnl_task, after dma memory allocation fails, another shutdown
> and open NIC is executed.
> 
> CC: Joe Jin <joe....@oracle.com>
> CC: Junxiao Bi <junxiao...@oracle.com>
> Signed-off-by: Zhu Yanjun <yanjun....@oracle.com>
> Acked-by: Ariel Elior <ael...@cavium.com>

Applied.

Reply via email to