From: Eli Cohen Date: Thu, 31 Oct 2013 13:26:33 +0000 (+0200) Subject: IB/mlx5: Fix list_del of empty list X-Git-Tag: v6.6-pxa1908~24309^2^7~2 X-Git-Url: https://git.dujemihanovic.xyz/?a=commitdiff_plain;h=2b136d025348774633a2f6fc2a87f0cf409a3ab9;p=linux.git IB/mlx5: Fix list_del of empty list For archs with pages size of 4K, when the chunk is freed, fwp is not in the list so avoid attempting to delete it. Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier --- diff --git a/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c b/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c index ba816c25c5c1..37b6ad1f9a1b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c @@ -229,7 +229,8 @@ static void free_4k(struct mlx5_core_dev *dev, u64 addr) set_bit(n, &fwp->bitmask); if (fwp->free_count == MLX5_NUM_4K_IN_PAGE) { rb_erase(&fwp->rb_node, &dev->priv.page_root); - list_del(&fwp->list); + if (fwp->free_count != 1) + list_del(&fwp->list); dma_unmap_page(&dev->pdev->dev, addr, PAGE_SIZE, DMA_BIDIRECTIONAL); __free_page(fwp->page); kfree(fwp);