]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/net/mlx4/alloc.c
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / drivers / net / mlx4 / alloc.c
index 8f4bf1f07c11e824e8e21785f122c5d0d66775c5..3a4277f6fac4171991a24a9ebd1de3f032a96636 100644 (file)
@@ -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)