]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
net/mlx4_en: Schedule napi when RX buffers allocation fails
authorIdo Shamay <idos@mellanox.com>
Thu, 30 Apr 2015 14:32:46 +0000 (17:32 +0300)
committerSasha Levin <sasha.levin@oracle.com>
Mon, 11 May 2015 11:07:53 +0000 (07:07 -0400)
commitb64bab57fb15e81f3f159353f18adf3d9c8c11a7
treeac7ce95d833ee8b253518a337eb1785c7c6d7321
parent09f2ece83a8589f9e65cf75bf7d6aac9ec32fe67
net/mlx4_en: Schedule napi when RX buffers allocation fails

[ Upstream commit 07841f9d94c11afe00c0498cf242edf4075729f4 ]

When system is out of memory, refilling of RX buffers fails while
the driver continue to pass the received packets to the kernel stack.
At some point, when all RX buffers deplete, driver may fall into a
sleep, and not recover when memory for new RX buffers is once again
availible. This is because hardware does not have valid descriptors,
so no interrupt will be generated for the driver to return to work
in napi context. Fix it by schedule the napi poll function from
stats_task delayed workqueue, as long as the allocations fail.

Signed-off-by: Ido Shamay <idos@mellanox.com>
Signed-off-by: Amir Vadai <amirv@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
drivers/net/ethernet/mellanox/mlx4/en_rx.c
drivers/net/ethernet/mellanox/mlx4/mlx4_en.h