diff options
author | Joe Perches <joe@perches.com> | 2013-03-15 03:23:58 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-03-17 12:50:24 -0400 |
commit | 1f9061d27d3d2028805549c4a306324a48209057 (patch) | |
tree | 7cfb1a92933f5a9bba6745b68b6a964d9e757ef9 /drivers/net/ethernet/xilinx | |
parent | 7f9421c264f8a6e6137027a45ae576517f66fa56 (diff) |
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>
Diffstat (limited to 'drivers/net/ethernet/xilinx')
-rw-r--r-- | drivers/net/ethernet/xilinx/ll_temac_main.c | 6 | ||||
-rw-r--r-- | drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 6 |
2 files changed, 4 insertions, 8 deletions
diff --git a/drivers/net/ethernet/xilinx/ll_temac_main.c b/drivers/net/ethernet/xilinx/ll_temac_main.c index a64a6d74a5c8..4a7c60f4c83d 100644 --- a/drivers/net/ethernet/xilinx/ll_temac_main.c +++ b/drivers/net/ethernet/xilinx/ll_temac_main.c | |||
@@ -245,23 +245,21 @@ static int temac_dma_bd_init(struct net_device *ndev) | |||
245 | /* returns a virtual address and a physical address. */ | 245 | /* returns a virtual address and a physical address. */ |
246 | lp->tx_bd_v = dma_alloc_coherent(ndev->dev.parent, | 246 | lp->tx_bd_v = dma_alloc_coherent(ndev->dev.parent, |
247 | sizeof(*lp->tx_bd_v) * TX_BD_NUM, | 247 | sizeof(*lp->tx_bd_v) * TX_BD_NUM, |
248 | &lp->tx_bd_p, GFP_KERNEL); | 248 | &lp->tx_bd_p, GFP_KERNEL | __GFP_ZERO); |
249 | if (!lp->tx_bd_v) | 249 | if (!lp->tx_bd_v) |
250 | goto out; | 250 | goto out; |
251 | 251 | ||
252 | lp->rx_bd_v = dma_alloc_coherent(ndev->dev.parent, | 252 | lp->rx_bd_v = dma_alloc_coherent(ndev->dev.parent, |
253 | sizeof(*lp->rx_bd_v) * RX_BD_NUM, | 253 | sizeof(*lp->rx_bd_v) * RX_BD_NUM, |
254 | &lp->rx_bd_p, GFP_KERNEL); | 254 | &lp->rx_bd_p, GFP_KERNEL | __GFP_ZERO); |
255 | if (!lp->rx_bd_v) | 255 | if (!lp->rx_bd_v) |
256 | goto out; | 256 | goto out; |
257 | 257 | ||
258 | memset(lp->tx_bd_v, 0, sizeof(*lp->tx_bd_v) * TX_BD_NUM); | ||
259 | for (i = 0; i < TX_BD_NUM; i++) { | 258 | for (i = 0; i < TX_BD_NUM; i++) { |
260 | lp->tx_bd_v[i].next = lp->tx_bd_p + | 259 | lp->tx_bd_v[i].next = lp->tx_bd_p + |
261 | sizeof(*lp->tx_bd_v) * ((i + 1) % TX_BD_NUM); | 260 | sizeof(*lp->tx_bd_v) * ((i + 1) % TX_BD_NUM); |
262 | } | 261 | } |
263 | 262 | ||
264 | memset(lp->rx_bd_v, 0, sizeof(*lp->rx_bd_v) * RX_BD_NUM); | ||
265 | for (i = 0; i < RX_BD_NUM; i++) { | 263 | for (i = 0; i < RX_BD_NUM; i++) { |
266 | lp->rx_bd_v[i].next = lp->rx_bd_p + | 264 | lp->rx_bd_v[i].next = lp->rx_bd_p + |
267 | sizeof(*lp->rx_bd_v) * ((i + 1) % RX_BD_NUM); | 265 | sizeof(*lp->rx_bd_v) * ((i + 1) % RX_BD_NUM); |
diff --git a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c index c238f980e28e..24748e8367a1 100644 --- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c +++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c | |||
@@ -204,25 +204,23 @@ static int axienet_dma_bd_init(struct net_device *ndev) | |||
204 | lp->tx_bd_v = dma_alloc_coherent(ndev->dev.parent, | 204 | lp->tx_bd_v = dma_alloc_coherent(ndev->dev.parent, |
205 | sizeof(*lp->tx_bd_v) * TX_BD_NUM, | 205 | sizeof(*lp->tx_bd_v) * TX_BD_NUM, |
206 | &lp->tx_bd_p, | 206 | &lp->tx_bd_p, |
207 | GFP_KERNEL); | 207 | GFP_KERNEL | __GFP_ZERO); |
208 | if (!lp->tx_bd_v) | 208 | if (!lp->tx_bd_v) |
209 | goto out; | 209 | goto out; |
210 | 210 | ||
211 | lp->rx_bd_v = dma_alloc_coherent(ndev->dev.parent, | 211 | lp->rx_bd_v = dma_alloc_coherent(ndev->dev.parent, |
212 | sizeof(*lp->rx_bd_v) * RX_BD_NUM, | 212 | sizeof(*lp->rx_bd_v) * RX_BD_NUM, |
213 | &lp->rx_bd_p, | 213 | &lp->rx_bd_p, |
214 | GFP_KERNEL); | 214 | GFP_KERNEL | __GFP_ZERO); |
215 | if (!lp->rx_bd_v) | 215 | if (!lp->rx_bd_v) |
216 | goto out; | 216 | goto out; |
217 | 217 | ||
218 | memset(lp->tx_bd_v, 0, sizeof(*lp->tx_bd_v) * TX_BD_NUM); | ||
219 | for (i = 0; i < TX_BD_NUM; i++) { | 218 | for (i = 0; i < TX_BD_NUM; i++) { |
220 | lp->tx_bd_v[i].next = lp->tx_bd_p + | 219 | lp->tx_bd_v[i].next = lp->tx_bd_p + |
221 | sizeof(*lp->tx_bd_v) * | 220 | sizeof(*lp->tx_bd_v) * |
222 | ((i + 1) % TX_BD_NUM); | 221 | ((i + 1) % TX_BD_NUM); |
223 | } | 222 | } |
224 | 223 | ||
225 | memset(lp->rx_bd_v, 0, sizeof(*lp->rx_bd_v) * RX_BD_NUM); | ||
226 | for (i = 0; i < RX_BD_NUM; i++) { | 224 | for (i = 0; i < RX_BD_NUM; i++) { |
227 | lp->rx_bd_v[i].next = lp->rx_bd_p + | 225 | lp->rx_bd_v[i].next = lp->rx_bd_p + |
228 | sizeof(*lp->rx_bd_v) * | 226 | sizeof(*lp->rx_bd_v) * |