From: Ali Ayoub Date: Tue, 11 Jan 2011 01:42:06 +0000 (-0800) Subject: mlx4_core: Avoid vunmap() of invalid pointer if allocation fails X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=030b4b3309e29c6c857d8521c3076743663c259e;p=openwrt%2Fstaging%2Fblogic.git mlx4_core: Avoid vunmap() of invalid pointer if allocation fails Signed-off-by: Ali Ayoub Signed-off-by: Roland Dreier --- diff --git a/drivers/net/mlx4/alloc.c b/drivers/net/mlx4/alloc.c index 8f4bf1f07c11..3a4277f6fac4 100644 --- a/drivers/net/mlx4/alloc.c +++ b/drivers/net/mlx4/alloc.c @@ -178,6 +178,7 @@ int mlx4_buf_alloc(struct mlx4_dev *dev, int size, int max_direct, } else { int i; + buf->direct.buf = NULL; buf->nbufs = (size + PAGE_SIZE - 1) / PAGE_SIZE; buf->npages = buf->nbufs; buf->page_shift = PAGE_SHIFT; @@ -229,7 +230,7 @@ void mlx4_buf_free(struct mlx4_dev *dev, int size, struct mlx4_buf *buf) dma_free_coherent(&dev->pdev->dev, size, buf->direct.buf, buf->direct.map); else { - if (BITS_PER_LONG == 64) + if (BITS_PER_LONG == 64 && buf->direct.buf) vunmap(buf->direct.buf); for (i = 0; i < buf->nbufs; ++i)