diff options
author | Achiad Shochat | 2015-12-29 13:58:29 +0100 |
---|---|---|
committer | David S. Miller | 2016-01-05 20:11:50 +0100 |
commit | 34802a42b3528b0e18ea4517c8b23e1214a09332 (patch) | |
tree | 20c9aeba84c5c97165444d2b9e4bd9ddaabdf2a6 /drivers/net/ethernet/mellanox/mlx5/core/en_main.c | |
parent | Merge branch 'sctp-transport-rhashtable' (diff) | |
download | kernel-qcow2-linux-34802a42b3528b0e18ea4517c8b23e1214a09332.tar.gz kernel-qcow2-linux-34802a42b3528b0e18ea4517c8b23e1214a09332.tar.xz kernel-qcow2-linux-34802a42b3528b0e18ea4517c8b23e1214a09332.zip |
net/mlx5e: Do not modify the TX SKB
If the SKB is cloned, or has an elevated users count, someone else
can be looking at it at the same time.
Signed-off-by: Achiad Shochat <achiad@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx5/core/en_main.c')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c index d4601a564699..96775a29a440 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@ -507,6 +507,7 @@ static void mlx5e_close_rq(struct mlx5e_rq *rq) static void mlx5e_free_sq_db(struct mlx5e_sq *sq) { + kfree(sq->wqe_info); kfree(sq->dma_fifo); kfree(sq->skb); } @@ -519,8 +520,10 @@ static int mlx5e_alloc_sq_db(struct mlx5e_sq *sq, int numa) sq->skb = kzalloc_node(wq_sz * sizeof(*sq->skb), GFP_KERNEL, numa); sq->dma_fifo = kzalloc_node(df_sz * sizeof(*sq->dma_fifo), GFP_KERNEL, numa); + sq->wqe_info = kzalloc_node(wq_sz * sizeof(*sq->wqe_info), GFP_KERNEL, + numa); - if (!sq->skb || !sq->dma_fifo) { + if (!sq->skb || !sq->dma_fifo || !sq->wqe_info) { mlx5e_free_sq_db(sq); return -ENOMEM; } |