drivers:net: dma_alloc_coherent: use __GFP_ZERO instead of memset(, 0)
Reduce the number of calls required to alloc a zeroed block of memory. Trivially reduces overall object size. Other changes around these removals o Neaten call argument alignment o Remove an unnecessary OOM message after dma_alloc_coherent failure o Remove unnecessary gfp_t stack variable Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
7f9421c264
commit
1f9061d27d
@@ -245,23 +245,21 @@ static int temac_dma_bd_init(struct net_device *ndev)
|
||||
/* returns a virtual address and a physical address. */
|
||||
lp->tx_bd_v = dma_alloc_coherent(ndev->dev.parent,
|
||||
sizeof(*lp->tx_bd_v) * TX_BD_NUM,
|
||||
&lp->tx_bd_p, GFP_KERNEL);
|
||||
&lp->tx_bd_p, GFP_KERNEL | __GFP_ZERO);
|
||||
if (!lp->tx_bd_v)
|
||||
goto out;
|
||||
|
||||
lp->rx_bd_v = dma_alloc_coherent(ndev->dev.parent,
|
||||
sizeof(*lp->rx_bd_v) * RX_BD_NUM,
|
||||
&lp->rx_bd_p, GFP_KERNEL);
|
||||
&lp->rx_bd_p, GFP_KERNEL | __GFP_ZERO);
|
||||
if (!lp->rx_bd_v)
|
||||
goto out;
|
||||
|
||||
memset(lp->tx_bd_v, 0, sizeof(*lp->tx_bd_v) * TX_BD_NUM);
|
||||
for (i = 0; i < TX_BD_NUM; i++) {
|
||||
lp->tx_bd_v[i].next = lp->tx_bd_p +
|
||||
sizeof(*lp->tx_bd_v) * ((i + 1) % TX_BD_NUM);
|
||||
}
|
||||
|
||||
memset(lp->rx_bd_v, 0, sizeof(*lp->rx_bd_v) * RX_BD_NUM);
|
||||
for (i = 0; i < RX_BD_NUM; i++) {
|
||||
lp->rx_bd_v[i].next = lp->rx_bd_p +
|
||||
sizeof(*lp->rx_bd_v) * ((i + 1) % RX_BD_NUM);
|
||||
|
@@ -204,25 +204,23 @@ static int axienet_dma_bd_init(struct net_device *ndev)
|
||||
lp->tx_bd_v = dma_alloc_coherent(ndev->dev.parent,
|
||||
sizeof(*lp->tx_bd_v) * TX_BD_NUM,
|
||||
&lp->tx_bd_p,
|
||||
GFP_KERNEL);
|
||||
GFP_KERNEL | __GFP_ZERO);
|
||||
if (!lp->tx_bd_v)
|
||||
goto out;
|
||||
|
||||
lp->rx_bd_v = dma_alloc_coherent(ndev->dev.parent,
|
||||
sizeof(*lp->rx_bd_v) * RX_BD_NUM,
|
||||
&lp->rx_bd_p,
|
||||
GFP_KERNEL);
|
||||
GFP_KERNEL | __GFP_ZERO);
|
||||
if (!lp->rx_bd_v)
|
||||
goto out;
|
||||
|
||||
memset(lp->tx_bd_v, 0, sizeof(*lp->tx_bd_v) * TX_BD_NUM);
|
||||
for (i = 0; i < TX_BD_NUM; i++) {
|
||||
lp->tx_bd_v[i].next = lp->tx_bd_p +
|
||||
sizeof(*lp->tx_bd_v) *
|
||||
((i + 1) % TX_BD_NUM);
|
||||
}
|
||||
|
||||
memset(lp->rx_bd_v, 0, sizeof(*lp->rx_bd_v) * RX_BD_NUM);
|
||||
for (i = 0; i < RX_BD_NUM; i++) {
|
||||
lp->rx_bd_v[i].next = lp->rx_bd_p +
|
||||
sizeof(*lp->rx_bd_v) *
|
||||
|
Reference in New Issue
Block a user