net: nvidia: forcedeth: Replace GFP_ATOMIC with GFP_KERNEL in nv_probe()
authorJia-Ju Bai <baijiaju1990@gmail.com>
Fri, 27 Jul 2018 08:29:31 +0000 (16:29 +0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 27 Jul 2018 20:45:14 +0000 (13:45 -0700)
nv_probe() is never called in atomic context.
It calls dma_alloc_coherent() 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/nvidia/forcedeth.c

index 7cbd017..1d9b0d4 100644 (file)
@@ -5777,7 +5777,7 @@ static int nv_probe(struct pci_dev *pci_dev, const struct pci_device_id *id)
                                                      (np->rx_ring_size +
                                                      np->tx_ring_size),
                                                      &np->ring_addr,
-                                                     GFP_ATOMIC);
+                                                     GFP_KERNEL);
                if (!np->rx_ring.orig)
                        goto out_unmap;
                np->tx_ring.orig = &np->rx_ring.orig[np->rx_ring_size];
@@ -5786,7 +5786,7 @@ static int nv_probe(struct pci_dev *pci_dev, const struct pci_device_id *id)
                                                    sizeof(struct ring_desc_ex) *
                                                    (np->rx_ring_size +
                                                    np->tx_ring_size),
-                                                   &np->ring_addr, GFP_ATOMIC);
+                                                   &np->ring_addr, GFP_KERNEL);
                if (!np->rx_ring.ex)
                        goto out_unmap;
                np->tx_ring.ex = &np->rx_ring.ex[np->rx_ring_size];