]> git.baikalelectronics.ru Git - kernel.git/commit
mlx5: fix skb leak while fifo resync and push
authorVadim Fedorenko <vadfed@meta.com>
Thu, 2 Feb 2023 17:13:54 +0000 (09:13 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 11 Mar 2023 12:55:27 +0000 (13:55 +0100)
commit598f8fa5b2ee41dfefff269fb5117b01743b3209
tree0601139f1ee921572c676cdbf43405878555efc6
parent8eb395fb32ad35e1008158a85ef6f386bf0d4f9e
mlx5: fix skb leak while fifo resync and push

[ Upstream commit 61bdcce45938f6ddb538199826bd6e69eb86e7b7 ]

During ptp resync operation SKBs were poped from the fifo but were never
freed neither by napi_consume nor by dev_kfree_skb_any. Add call to
napi_consume_skb to properly free SKBs.

Another leak was happening because mlx5e_skb_fifo_has_room() had an error
in the check. Comparing free running counters works well unless C promotes
the types to something wider than the counter. In this case counters are
u16 but the result of the substraction is promouted to int and it causes
wrong result (negative value) of the check when producer have already
overlapped but consumer haven't yet. Explicit cast to u16 fixes the issue.

Fixes: 2037d365f6e3 ("net/mlx5e: Add resiliency for PTP TX port timestamp")
Reviewed-by: Gal Pressman <gal@nvidia.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Vadim Fedorenko <vadfed@meta.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h