cxgb3: avoid potential memory leak.
authorDivy Le Ray <divy@chelsio.com>
Wed, 26 Nov 2008 23:35:59 +0000 (15:35 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 26 Nov 2008 23:35:59 +0000 (15:35 -0800)
Add consistency in alloc_ring() parameter checking
to avoid potential memory leaks.
alloc_ring() callers are correct fo far.

Signed-off-by: Divy Le Ray <divy@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/cxgb3/sge.c

index 268f158..bc6a8dc 100644 (file)
@@ -549,16 +549,15 @@ static void *alloc_ring(struct pci_dev *pdev, size_t nelem, size_t elem_size,
 
        if (!p)
                return NULL;
-       if (sw_size) {
+       if (sw_size && metadata) {
                s = kcalloc(nelem, sw_size, GFP_KERNEL);
 
                if (!s) {
                        dma_free_coherent(&pdev->dev, len, p, *phys);
                        return NULL;
                }
-       }
-       if (metadata)
                *(void **)metadata = s;
+       }
        memset(p, 0, len);
        return p;
 }