net/mlx5e: Fix napi poll with zero budget
authorSaeed Mahameed <saeedm@mellanox.com>
Tue, 31 Oct 2017 22:34:00 +0000 (15:34 -0700)
committerSaeed Mahameed <saeedm@mellanox.com>
Fri, 10 Nov 2017 06:39:20 +0000 (15:39 +0900)
commit2a8d6065e7b90ad9d5540650944d802b0f86bdfe
tree1986cbf86d179ac840942b2baad28333f76b463c
parentd2aa060d40fa060e963f9a356d43481e43ba3dac
net/mlx5e: Fix napi poll with zero budget

napi->poll can be called with budget 0, e.g. in netpoll scenarios
where the caller only wants to poll TX rings
(poll_one_napi@net/core/netpoll.c).

The below commit changed RX polling from "while" loop to "do {} while",
which caused to ignore the initial budget and handle at least one RX
packet.

This fixes the following warning:
[ 2852.049194] mlx5e_napi_poll+0x0/0x260 [mlx5_core] exceeded budget in poll
[ 2852.049195] ------------[ cut here ]------------
[ 2852.049195] WARNING: CPU: 0 PID: 25691 at net/core/netpoll.c:171 netpoll_poll_dev+0x18a/0x1a0

Fixes: 4b7dfc992514 ("net/mlx5e: Early-return on empty completion queues")
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Reviewed-by: Tariq Toukan <tariqt@mellanox.com>
Reported-by: Martin KaFai Lau <kafai@fb.com>
Tested-by: Martin KaFai Lau <kafai@fb.com>
Cc: kernel-team@fb.com
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c