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>
 
        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;
 }