net: amd: pcnet32: Replace GFP_ATOMIC with GFP_KERNEL in pcnet32_alloc_ring()
authorJia-Ju Bai <baijiaju1990@gmail.com>
Fri, 27 Jul 2018 07:57:58 +0000 (15:57 +0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 27 Jul 2018 20:45:14 +0000 (13:45 -0700)
pcnet32_alloc_ring() is never called in atomic context.
It calls kcalloc() with GFP_ATOMIC, which is not necessary.
GFP_ATOMIC can be replaced with GFP_KERNEL.

This is found by a static analysis tool named DCNS written by myself.

Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/amd/pcnet32.c

index be198cc..f5ad12c 100644 (file)
@@ -2036,22 +2036,22 @@ static int pcnet32_alloc_ring(struct net_device *dev, const char *name)
        }
 
        lp->tx_dma_addr = kcalloc(lp->tx_ring_size, sizeof(dma_addr_t),
-                                 GFP_ATOMIC);
+                                 GFP_KERNEL);
        if (!lp->tx_dma_addr)
                return -ENOMEM;
 
        lp->rx_dma_addr = kcalloc(lp->rx_ring_size, sizeof(dma_addr_t),
-                                 GFP_ATOMIC);
+                                 GFP_KERNEL);
        if (!lp->rx_dma_addr)
                return -ENOMEM;
 
        lp->tx_skbuff = kcalloc(lp->tx_ring_size, sizeof(struct sk_buff *),
-                               GFP_ATOMIC);
+                               GFP_KERNEL);
        if (!lp->tx_skbuff)
                return -ENOMEM;
 
        lp->rx_skbuff = kcalloc(lp->rx_ring_size, sizeof(struct sk_buff *),
-                               GFP_ATOMIC);
+                               GFP_KERNEL);
        if (!lp->rx_skbuff)
                return -ENOMEM;