net/mlx5e: When changing XDP program without reset, take refs for XSK RQs
authorMaxim Mikityanskiy <maximmi@mellanox.com>
Thu, 11 Feb 2021 13:51:11 +0000 (15:51 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 30 Mar 2021 12:31:56 +0000 (14:31 +0200)
commitd0be25fa4f960dac846c894f43d481f3fa521864
treed6e359ac86556adee582cb9a1fc04121f199deee
parent60b5ff15b41d0904a3806dab6f0f147258294d1e
net/mlx5e: When changing XDP program without reset, take refs for XSK RQs

[ Upstream commit e5eb01344e9b09bb9d255b9727449186f7168df8 ]

Each RQ (including XSK RQs) takes a reference to the XDP program. When
an XDP program is attached or detached, the channels and queues are
recreated, however, there is a special flow for changing an active XDP
program to another one. In that flow, channels and queues stay alive,
but the refcounts of the old and new XDP programs are adjusted. This
flow didn't increment refcount by the number of active XSK RQs, and this
commit fixes it.

Fixes: db05815b36cb ("net/mlx5e: Add XSK zero-copy support")
Signed-off-by: Maxim Mikityanskiy <maximmi@mellanox.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/mellanox/mlx5/core/en_main.c