drivers/net: use vzalloc()

Use vzalloc() and vzalloc_node() in net drivers

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Acked-by: Jon Mason <jon.mason@exar.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Eric Dumazet 2010-11-22 00:15:06 +00:00 committed by David S. Miller
parent fe6d2a38b2
commit 89bf67f1f0
17 changed files with 39 additions and 87 deletions

View File

@ -766,13 +766,10 @@ bnx2_alloc_rx_mem(struct bnx2 *bp)
int j; int j;
rxr->rx_buf_ring = rxr->rx_buf_ring =
vmalloc(SW_RXBD_RING_SIZE * bp->rx_max_ring); vzalloc(SW_RXBD_RING_SIZE * bp->rx_max_ring);
if (rxr->rx_buf_ring == NULL) if (rxr->rx_buf_ring == NULL)
return -ENOMEM; return -ENOMEM;
memset(rxr->rx_buf_ring, 0,
SW_RXBD_RING_SIZE * bp->rx_max_ring);
for (j = 0; j < bp->rx_max_ring; j++) { for (j = 0; j < bp->rx_max_ring; j++) {
rxr->rx_desc_ring[j] = rxr->rx_desc_ring[j] =
dma_alloc_coherent(&bp->pdev->dev, dma_alloc_coherent(&bp->pdev->dev,
@ -785,13 +782,11 @@ bnx2_alloc_rx_mem(struct bnx2 *bp)
} }
if (bp->rx_pg_ring_size) { if (bp->rx_pg_ring_size) {
rxr->rx_pg_ring = vmalloc(SW_RXPG_RING_SIZE * rxr->rx_pg_ring = vzalloc(SW_RXPG_RING_SIZE *
bp->rx_max_pg_ring); bp->rx_max_pg_ring);
if (rxr->rx_pg_ring == NULL) if (rxr->rx_pg_ring == NULL)
return -ENOMEM; return -ENOMEM;
memset(rxr->rx_pg_ring, 0, SW_RXPG_RING_SIZE *
bp->rx_max_pg_ring);
} }
for (j = 0; j < bp->rx_max_pg_ring; j++) { for (j = 0; j < bp->rx_max_pg_ring; j++) {

View File

@ -1164,12 +1164,10 @@ static void cxgb_redirect(struct dst_entry *old, struct dst_entry *new)
*/ */
void *cxgb_alloc_mem(unsigned long size) void *cxgb_alloc_mem(unsigned long size)
{ {
void *p = kmalloc(size, GFP_KERNEL); void *p = kzalloc(size, GFP_KERNEL);
if (!p) if (!p)
p = vmalloc(size); p = vzalloc(size);
if (p)
memset(p, 0, size);
return p; return p;
} }

View File

@ -868,12 +868,10 @@ out: release_firmware(fw);
*/ */
void *t4_alloc_mem(size_t size) void *t4_alloc_mem(size_t size)
{ {
void *p = kmalloc(size, GFP_KERNEL); void *p = kzalloc(size, GFP_KERNEL);
if (!p) if (!p)
p = vmalloc(size); p = vzalloc(size);
if (p)
memset(p, 0, size);
return p; return p;
} }

View File

@ -1425,13 +1425,12 @@ static int e1000_setup_tx_resources(struct e1000_adapter *adapter,
int size; int size;
size = sizeof(struct e1000_buffer) * txdr->count; size = sizeof(struct e1000_buffer) * txdr->count;
txdr->buffer_info = vmalloc(size); txdr->buffer_info = vzalloc(size);
if (!txdr->buffer_info) { if (!txdr->buffer_info) {
e_err(probe, "Unable to allocate memory for the Tx descriptor " e_err(probe, "Unable to allocate memory for the Tx descriptor "
"ring\n"); "ring\n");
return -ENOMEM; return -ENOMEM;
} }
memset(txdr->buffer_info, 0, size);
/* round up to nearest 4K */ /* round up to nearest 4K */
@ -1621,13 +1620,12 @@ static int e1000_setup_rx_resources(struct e1000_adapter *adapter,
int size, desc_len; int size, desc_len;
size = sizeof(struct e1000_buffer) * rxdr->count; size = sizeof(struct e1000_buffer) * rxdr->count;
rxdr->buffer_info = vmalloc(size); rxdr->buffer_info = vzalloc(size);
if (!rxdr->buffer_info) { if (!rxdr->buffer_info) {
e_err(probe, "Unable to allocate memory for the Rx descriptor " e_err(probe, "Unable to allocate memory for the Rx descriptor "
"ring\n"); "ring\n");
return -ENOMEM; return -ENOMEM;
} }
memset(rxdr->buffer_info, 0, size);
desc_len = sizeof(struct e1000_rx_desc); desc_len = sizeof(struct e1000_rx_desc);

View File

@ -2059,10 +2059,9 @@ int e1000e_setup_tx_resources(struct e1000_adapter *adapter)
int err = -ENOMEM, size; int err = -ENOMEM, size;
size = sizeof(struct e1000_buffer) * tx_ring->count; size = sizeof(struct e1000_buffer) * tx_ring->count;
tx_ring->buffer_info = vmalloc(size); tx_ring->buffer_info = vzalloc(size);
if (!tx_ring->buffer_info) if (!tx_ring->buffer_info)
goto err; goto err;
memset(tx_ring->buffer_info, 0, size);
/* round up to nearest 4K */ /* round up to nearest 4K */
tx_ring->size = tx_ring->count * sizeof(struct e1000_tx_desc); tx_ring->size = tx_ring->count * sizeof(struct e1000_tx_desc);
@ -2095,10 +2094,9 @@ int e1000e_setup_rx_resources(struct e1000_adapter *adapter)
int i, size, desc_len, err = -ENOMEM; int i, size, desc_len, err = -ENOMEM;
size = sizeof(struct e1000_buffer) * rx_ring->count; size = sizeof(struct e1000_buffer) * rx_ring->count;
rx_ring->buffer_info = vmalloc(size); rx_ring->buffer_info = vzalloc(size);
if (!rx_ring->buffer_info) if (!rx_ring->buffer_info)
goto err; goto err;
memset(rx_ring->buffer_info, 0, size);
for (i = 0; i < rx_ring->count; i++) { for (i = 0; i < rx_ring->count; i++) {
buffer_info = &rx_ring->buffer_info[i]; buffer_info = &rx_ring->buffer_info[i];

View File

@ -1496,12 +1496,10 @@ static int ehea_init_q_skba(struct ehea_q_skb_arr *q_skba, int max_q_entries)
{ {
int arr_size = sizeof(void *) * max_q_entries; int arr_size = sizeof(void *) * max_q_entries;
q_skba->arr = vmalloc(arr_size); q_skba->arr = vzalloc(arr_size);
if (!q_skba->arr) if (!q_skba->arr)
return -ENOMEM; return -ENOMEM;
memset(q_skba->arr, 0, arr_size);
q_skba->len = max_q_entries; q_skba->len = max_q_entries;
q_skba->index = 0; q_skba->index = 0;
q_skba->os_skbs = 0; q_skba->os_skbs = 0;

View File

@ -2436,10 +2436,9 @@ int igb_setup_tx_resources(struct igb_ring *tx_ring)
int size; int size;
size = sizeof(struct igb_buffer) * tx_ring->count; size = sizeof(struct igb_buffer) * tx_ring->count;
tx_ring->buffer_info = vmalloc(size); tx_ring->buffer_info = vzalloc(size);
if (!tx_ring->buffer_info) if (!tx_ring->buffer_info)
goto err; goto err;
memset(tx_ring->buffer_info, 0, size);
/* round up to nearest 4K */ /* round up to nearest 4K */
tx_ring->size = tx_ring->count * sizeof(union e1000_adv_tx_desc); tx_ring->size = tx_ring->count * sizeof(union e1000_adv_tx_desc);
@ -2587,10 +2586,9 @@ int igb_setup_rx_resources(struct igb_ring *rx_ring)
int size, desc_len; int size, desc_len;
size = sizeof(struct igb_buffer) * rx_ring->count; size = sizeof(struct igb_buffer) * rx_ring->count;
rx_ring->buffer_info = vmalloc(size); rx_ring->buffer_info = vzalloc(size);
if (!rx_ring->buffer_info) if (!rx_ring->buffer_info)
goto err; goto err;
memset(rx_ring->buffer_info, 0, size);
desc_len = sizeof(union e1000_adv_rx_desc); desc_len = sizeof(union e1000_adv_rx_desc);

View File

@ -430,10 +430,9 @@ int igbvf_setup_tx_resources(struct igbvf_adapter *adapter,
int size; int size;
size = sizeof(struct igbvf_buffer) * tx_ring->count; size = sizeof(struct igbvf_buffer) * tx_ring->count;
tx_ring->buffer_info = vmalloc(size); tx_ring->buffer_info = vzalloc(size);
if (!tx_ring->buffer_info) if (!tx_ring->buffer_info)
goto err; goto err;
memset(tx_ring->buffer_info, 0, size);
/* round up to nearest 4K */ /* round up to nearest 4K */
tx_ring->size = tx_ring->count * sizeof(union e1000_adv_tx_desc); tx_ring->size = tx_ring->count * sizeof(union e1000_adv_tx_desc);
@ -470,10 +469,9 @@ int igbvf_setup_rx_resources(struct igbvf_adapter *adapter,
int size, desc_len; int size, desc_len;
size = sizeof(struct igbvf_buffer) * rx_ring->count; size = sizeof(struct igbvf_buffer) * rx_ring->count;
rx_ring->buffer_info = vmalloc(size); rx_ring->buffer_info = vzalloc(size);
if (!rx_ring->buffer_info) if (!rx_ring->buffer_info)
goto err; goto err;
memset(rx_ring->buffer_info, 0, size);
desc_len = sizeof(union e1000_adv_rx_desc); desc_len = sizeof(union e1000_adv_rx_desc);

View File

@ -669,13 +669,12 @@ ixgb_setup_tx_resources(struct ixgb_adapter *adapter)
int size; int size;
size = sizeof(struct ixgb_buffer) * txdr->count; size = sizeof(struct ixgb_buffer) * txdr->count;
txdr->buffer_info = vmalloc(size); txdr->buffer_info = vzalloc(size);
if (!txdr->buffer_info) { if (!txdr->buffer_info) {
netif_err(adapter, probe, adapter->netdev, netif_err(adapter, probe, adapter->netdev,
"Unable to allocate transmit descriptor ring memory\n"); "Unable to allocate transmit descriptor ring memory\n");
return -ENOMEM; return -ENOMEM;
} }
memset(txdr->buffer_info, 0, size);
/* round up to nearest 4K */ /* round up to nearest 4K */
@ -759,13 +758,12 @@ ixgb_setup_rx_resources(struct ixgb_adapter *adapter)
int size; int size;
size = sizeof(struct ixgb_buffer) * rxdr->count; size = sizeof(struct ixgb_buffer) * rxdr->count;
rxdr->buffer_info = vmalloc(size); rxdr->buffer_info = vzalloc(size);
if (!rxdr->buffer_info) { if (!rxdr->buffer_info) {
netif_err(adapter, probe, adapter->netdev, netif_err(adapter, probe, adapter->netdev,
"Unable to allocate receive descriptor ring\n"); "Unable to allocate receive descriptor ring\n");
return -ENOMEM; return -ENOMEM;
} }
memset(rxdr->buffer_info, 0, size);
/* Round up to nearest 4K */ /* Round up to nearest 4K */

View File

@ -5181,12 +5181,11 @@ int ixgbe_setup_tx_resources(struct ixgbe_ring *tx_ring)
int size; int size;
size = sizeof(struct ixgbe_tx_buffer) * tx_ring->count; size = sizeof(struct ixgbe_tx_buffer) * tx_ring->count;
tx_ring->tx_buffer_info = vmalloc_node(size, tx_ring->numa_node); tx_ring->tx_buffer_info = vzalloc_node(size, tx_ring->numa_node);
if (!tx_ring->tx_buffer_info) if (!tx_ring->tx_buffer_info)
tx_ring->tx_buffer_info = vmalloc(size); tx_ring->tx_buffer_info = vzalloc(size);
if (!tx_ring->tx_buffer_info) if (!tx_ring->tx_buffer_info)
goto err; goto err;
memset(tx_ring->tx_buffer_info, 0, size);
/* round up to nearest 4K */ /* round up to nearest 4K */
tx_ring->size = tx_ring->count * sizeof(union ixgbe_adv_tx_desc); tx_ring->size = tx_ring->count * sizeof(union ixgbe_adv_tx_desc);
@ -5246,12 +5245,11 @@ int ixgbe_setup_rx_resources(struct ixgbe_ring *rx_ring)
int size; int size;
size = sizeof(struct ixgbe_rx_buffer) * rx_ring->count; size = sizeof(struct ixgbe_rx_buffer) * rx_ring->count;
rx_ring->rx_buffer_info = vmalloc_node(size, rx_ring->numa_node); rx_ring->rx_buffer_info = vzalloc_node(size, rx_ring->numa_node);
if (!rx_ring->rx_buffer_info) if (!rx_ring->rx_buffer_info)
rx_ring->rx_buffer_info = vmalloc(size); rx_ring->rx_buffer_info = vzalloc(size);
if (!rx_ring->rx_buffer_info) if (!rx_ring->rx_buffer_info)
goto err; goto err;
memset(rx_ring->rx_buffer_info, 0, size);
/* Round up to nearest 4K */ /* Round up to nearest 4K */
rx_ring->size = rx_ring->count * sizeof(union ixgbe_adv_rx_desc); rx_ring->size = rx_ring->count * sizeof(union ixgbe_adv_rx_desc);

View File

@ -2489,10 +2489,9 @@ int ixgbevf_setup_tx_resources(struct ixgbevf_adapter *adapter,
int size; int size;
size = sizeof(struct ixgbevf_tx_buffer) * tx_ring->count; size = sizeof(struct ixgbevf_tx_buffer) * tx_ring->count;
tx_ring->tx_buffer_info = vmalloc(size); tx_ring->tx_buffer_info = vzalloc(size);
if (!tx_ring->tx_buffer_info) if (!tx_ring->tx_buffer_info)
goto err; goto err;
memset(tx_ring->tx_buffer_info, 0, size);
/* round up to nearest 4K */ /* round up to nearest 4K */
tx_ring->size = tx_ring->count * sizeof(union ixgbe_adv_tx_desc); tx_ring->size = tx_ring->count * sizeof(union ixgbe_adv_tx_desc);
@ -2556,14 +2555,13 @@ int ixgbevf_setup_rx_resources(struct ixgbevf_adapter *adapter,
int size; int size;
size = sizeof(struct ixgbevf_rx_buffer) * rx_ring->count; size = sizeof(struct ixgbevf_rx_buffer) * rx_ring->count;
rx_ring->rx_buffer_info = vmalloc(size); rx_ring->rx_buffer_info = vzalloc(size);
if (!rx_ring->rx_buffer_info) { if (!rx_ring->rx_buffer_info) {
hw_dbg(&adapter->hw, hw_dbg(&adapter->hw,
"Unable to vmalloc buffer memory for " "Unable to vmalloc buffer memory for "
"the receive descriptor ring\n"); "the receive descriptor ring\n");
goto alloc_failed; goto alloc_failed;
} }
memset(rx_ring->rx_buffer_info, 0, size);
/* Round up to nearest 4K */ /* Round up to nearest 4K */
rx_ring->size = rx_ring->count * sizeof(union ixgbe_adv_rx_desc); rx_ring->size = rx_ring->count * sizeof(union ixgbe_adv_rx_desc);

View File

@ -214,13 +214,12 @@ int netxen_alloc_sw_resources(struct netxen_adapter *adapter)
tx_ring->num_desc = adapter->num_txd; tx_ring->num_desc = adapter->num_txd;
tx_ring->txq = netdev_get_tx_queue(netdev, 0); tx_ring->txq = netdev_get_tx_queue(netdev, 0);
cmd_buf_arr = vmalloc(TX_BUFF_RINGSIZE(tx_ring)); cmd_buf_arr = vzalloc(TX_BUFF_RINGSIZE(tx_ring));
if (cmd_buf_arr == NULL) { if (cmd_buf_arr == NULL) {
dev_err(&pdev->dev, "%s: failed to allocate cmd buffer ring\n", dev_err(&pdev->dev, "%s: failed to allocate cmd buffer ring\n",
netdev->name); netdev->name);
goto err_out; goto err_out;
} }
memset(cmd_buf_arr, 0, TX_BUFF_RINGSIZE(tx_ring));
tx_ring->cmd_buf_arr = cmd_buf_arr; tx_ring->cmd_buf_arr = cmd_buf_arr;
recv_ctx = &adapter->recv_ctx; recv_ctx = &adapter->recv_ctx;
@ -280,7 +279,7 @@ int netxen_alloc_sw_resources(struct netxen_adapter *adapter)
} }
rds_ring->rx_buf_arr = (struct netxen_rx_buffer *) rds_ring->rx_buf_arr = (struct netxen_rx_buffer *)
vmalloc(RCV_BUFF_RINGSIZE(rds_ring)); vzalloc(RCV_BUFF_RINGSIZE(rds_ring));
if (rds_ring->rx_buf_arr == NULL) { if (rds_ring->rx_buf_arr == NULL) {
printk(KERN_ERR "%s: Failed to allocate " printk(KERN_ERR "%s: Failed to allocate "
"rx buffer ring %d\n", "rx buffer ring %d\n",
@ -288,7 +287,6 @@ int netxen_alloc_sw_resources(struct netxen_adapter *adapter)
/* free whatever was already allocated */ /* free whatever was already allocated */
goto err_out; goto err_out;
} }
memset(rds_ring->rx_buf_arr, 0, RCV_BUFF_RINGSIZE(rds_ring));
INIT_LIST_HEAD(&rds_ring->free_list); INIT_LIST_HEAD(&rds_ring->free_list);
/* /*
* Now go through all of them, set reference handles * Now go through all of them, set reference handles

View File

@ -1523,12 +1523,11 @@ int pch_gbe_setup_tx_resources(struct pch_gbe_adapter *adapter,
int desNo; int desNo;
size = (int)sizeof(struct pch_gbe_buffer) * tx_ring->count; size = (int)sizeof(struct pch_gbe_buffer) * tx_ring->count;
tx_ring->buffer_info = vmalloc(size); tx_ring->buffer_info = vzalloc(size);
if (!tx_ring->buffer_info) { if (!tx_ring->buffer_info) {
pr_err("Unable to allocate memory for the buffer infomation\n"); pr_err("Unable to allocate memory for the buffer infomation\n");
return -ENOMEM; return -ENOMEM;
} }
memset(tx_ring->buffer_info, 0, size);
tx_ring->size = tx_ring->count * (int)sizeof(struct pch_gbe_tx_desc); tx_ring->size = tx_ring->count * (int)sizeof(struct pch_gbe_tx_desc);
@ -1573,12 +1572,11 @@ int pch_gbe_setup_rx_resources(struct pch_gbe_adapter *adapter,
int desNo; int desNo;
size = (int)sizeof(struct pch_gbe_buffer) * rx_ring->count; size = (int)sizeof(struct pch_gbe_buffer) * rx_ring->count;
rx_ring->buffer_info = vmalloc(size); rx_ring->buffer_info = vzalloc(size);
if (!rx_ring->buffer_info) { if (!rx_ring->buffer_info) {
pr_err("Unable to allocate memory for the receive descriptor ring\n"); pr_err("Unable to allocate memory for the receive descriptor ring\n");
return -ENOMEM; return -ENOMEM;
} }
memset(rx_ring->buffer_info, 0, size);
rx_ring->size = rx_ring->count * (int)sizeof(struct pch_gbe_rx_desc); rx_ring->size = rx_ring->count * (int)sizeof(struct pch_gbe_rx_desc);
rx_ring->desc = dma_alloc_coherent(&pdev->dev, rx_ring->size, rx_ring->desc = dma_alloc_coherent(&pdev->dev, rx_ring->size,
&rx_ring->dma, GFP_KERNEL); &rx_ring->dma, GFP_KERNEL);

View File

@ -673,8 +673,7 @@ static int __init pptp_init_module(void)
int err = 0; int err = 0;
pr_info("PPTP driver version " PPTP_DRIVER_VERSION "\n"); pr_info("PPTP driver version " PPTP_DRIVER_VERSION "\n");
callid_sock = __vmalloc((MAX_CALLID + 1) * sizeof(void *), callid_sock = vzalloc((MAX_CALLID + 1) * sizeof(void *));
GFP_KERNEL | __GFP_ZERO, PAGE_KERNEL);
if (!callid_sock) { if (!callid_sock) {
pr_err("PPTP: cann't allocate memory\n"); pr_err("PPTP: cann't allocate memory\n");
return -ENOMEM; return -ENOMEM;

View File

@ -236,12 +236,11 @@ int qlcnic_alloc_sw_resources(struct qlcnic_adapter *adapter)
tx_ring->num_desc = adapter->num_txd; tx_ring->num_desc = adapter->num_txd;
tx_ring->txq = netdev_get_tx_queue(netdev, 0); tx_ring->txq = netdev_get_tx_queue(netdev, 0);
cmd_buf_arr = vmalloc(TX_BUFF_RINGSIZE(tx_ring)); cmd_buf_arr = vzalloc(TX_BUFF_RINGSIZE(tx_ring));
if (cmd_buf_arr == NULL) { if (cmd_buf_arr == NULL) {
dev_err(&netdev->dev, "failed to allocate cmd buffer ring\n"); dev_err(&netdev->dev, "failed to allocate cmd buffer ring\n");
goto err_out; goto err_out;
} }
memset(cmd_buf_arr, 0, TX_BUFF_RINGSIZE(tx_ring));
tx_ring->cmd_buf_arr = cmd_buf_arr; tx_ring->cmd_buf_arr = cmd_buf_arr;
recv_ctx = &adapter->recv_ctx; recv_ctx = &adapter->recv_ctx;
@ -276,13 +275,12 @@ int qlcnic_alloc_sw_resources(struct qlcnic_adapter *adapter)
break; break;
} }
rds_ring->rx_buf_arr = (struct qlcnic_rx_buffer *) rds_ring->rx_buf_arr = (struct qlcnic_rx_buffer *)
vmalloc(RCV_BUFF_RINGSIZE(rds_ring)); vzalloc(RCV_BUFF_RINGSIZE(rds_ring));
if (rds_ring->rx_buf_arr == NULL) { if (rds_ring->rx_buf_arr == NULL) {
dev_err(&netdev->dev, "Failed to allocate " dev_err(&netdev->dev, "Failed to allocate "
"rx buffer ring %d\n", ring); "rx buffer ring %d\n", ring);
goto err_out; goto err_out;
} }
memset(rds_ring->rx_buf_arr, 0, RCV_BUFF_RINGSIZE(rds_ring));
INIT_LIST_HEAD(&rds_ring->free_list); INIT_LIST_HEAD(&rds_ring->free_list);
/* /*
* Now go through all of them, set reference handles * Now go through all of them, set reference handles

View File

@ -428,10 +428,9 @@ int efx_probe_filters(struct efx_nic *efx)
GFP_KERNEL); GFP_KERNEL);
if (!table->used_bitmap) if (!table->used_bitmap)
goto fail; goto fail;
table->spec = vmalloc(table->size * sizeof(*table->spec)); table->spec = vzalloc(table->size * sizeof(*table->spec));
if (!table->spec) if (!table->spec)
goto fail; goto fail;
memset(table->spec, 0, table->size * sizeof(*table->spec));
} }
return 0; return 0;

View File

@ -1220,13 +1220,12 @@ vxge_hw_device_initialize(
goto exit; goto exit;
hldev = (struct __vxge_hw_device *) hldev = (struct __vxge_hw_device *)
vmalloc(sizeof(struct __vxge_hw_device)); vzalloc(sizeof(struct __vxge_hw_device));
if (hldev == NULL) { if (hldev == NULL) {
status = VXGE_HW_ERR_OUT_OF_MEMORY; status = VXGE_HW_ERR_OUT_OF_MEMORY;
goto exit; goto exit;
} }
memset(hldev, 0, sizeof(struct __vxge_hw_device));
hldev->magic = VXGE_HW_DEVICE_MAGIC; hldev->magic = VXGE_HW_DEVICE_MAGIC;
vxge_hw_device_debug_set(hldev, VXGE_ERR, VXGE_COMPONENT_ALL); vxge_hw_device_debug_set(hldev, VXGE_ERR, VXGE_COMPONENT_ALL);
@ -2064,15 +2063,12 @@ __vxge_hw_mempool_grow(struct vxge_hw_mempool *mempool, u32 num_allocate,
* allocate new memblock and its private part at once. * allocate new memblock and its private part at once.
* This helps to minimize memory usage a lot. */ * This helps to minimize memory usage a lot. */
mempool->memblocks_priv_arr[i] = mempool->memblocks_priv_arr[i] =
vmalloc(mempool->items_priv_size * n_items); vzalloc(mempool->items_priv_size * n_items);
if (mempool->memblocks_priv_arr[i] == NULL) { if (mempool->memblocks_priv_arr[i] == NULL) {
status = VXGE_HW_ERR_OUT_OF_MEMORY; status = VXGE_HW_ERR_OUT_OF_MEMORY;
goto exit; goto exit;
} }
memset(mempool->memblocks_priv_arr[i], 0,
mempool->items_priv_size * n_items);
/* allocate DMA-capable memblock */ /* allocate DMA-capable memblock */
mempool->memblocks_arr[i] = mempool->memblocks_arr[i] =
__vxge_hw_blockpool_malloc(mempool->devh, __vxge_hw_blockpool_malloc(mempool->devh,
@ -2145,12 +2141,11 @@ __vxge_hw_mempool_create(
} }
mempool = (struct vxge_hw_mempool *) mempool = (struct vxge_hw_mempool *)
vmalloc(sizeof(struct vxge_hw_mempool)); vzalloc(sizeof(struct vxge_hw_mempool));
if (mempool == NULL) { if (mempool == NULL) {
status = VXGE_HW_ERR_OUT_OF_MEMORY; status = VXGE_HW_ERR_OUT_OF_MEMORY;
goto exit; goto exit;
} }
memset(mempool, 0, sizeof(struct vxge_hw_mempool));
mempool->devh = devh; mempool->devh = devh;
mempool->memblock_size = memblock_size; mempool->memblock_size = memblock_size;
@ -2170,31 +2165,27 @@ __vxge_hw_mempool_create(
/* allocate array of memblocks */ /* allocate array of memblocks */
mempool->memblocks_arr = mempool->memblocks_arr =
(void **) vmalloc(sizeof(void *) * mempool->memblocks_max); (void **) vzalloc(sizeof(void *) * mempool->memblocks_max);
if (mempool->memblocks_arr == NULL) { if (mempool->memblocks_arr == NULL) {
__vxge_hw_mempool_destroy(mempool); __vxge_hw_mempool_destroy(mempool);
status = VXGE_HW_ERR_OUT_OF_MEMORY; status = VXGE_HW_ERR_OUT_OF_MEMORY;
mempool = NULL; mempool = NULL;
goto exit; goto exit;
} }
memset(mempool->memblocks_arr, 0,
sizeof(void *) * mempool->memblocks_max);
/* allocate array of private parts of items per memblocks */ /* allocate array of private parts of items per memblocks */
mempool->memblocks_priv_arr = mempool->memblocks_priv_arr =
(void **) vmalloc(sizeof(void *) * mempool->memblocks_max); (void **) vzalloc(sizeof(void *) * mempool->memblocks_max);
if (mempool->memblocks_priv_arr == NULL) { if (mempool->memblocks_priv_arr == NULL) {
__vxge_hw_mempool_destroy(mempool); __vxge_hw_mempool_destroy(mempool);
status = VXGE_HW_ERR_OUT_OF_MEMORY; status = VXGE_HW_ERR_OUT_OF_MEMORY;
mempool = NULL; mempool = NULL;
goto exit; goto exit;
} }
memset(mempool->memblocks_priv_arr, 0,
sizeof(void *) * mempool->memblocks_max);
/* allocate array of memblocks DMA objects */ /* allocate array of memblocks DMA objects */
mempool->memblocks_dma_arr = (struct vxge_hw_mempool_dma *) mempool->memblocks_dma_arr = (struct vxge_hw_mempool_dma *)
vmalloc(sizeof(struct vxge_hw_mempool_dma) * vzalloc(sizeof(struct vxge_hw_mempool_dma) *
mempool->memblocks_max); mempool->memblocks_max);
if (mempool->memblocks_dma_arr == NULL) { if (mempool->memblocks_dma_arr == NULL) {
@ -2203,20 +2194,16 @@ __vxge_hw_mempool_create(
mempool = NULL; mempool = NULL;
goto exit; goto exit;
} }
memset(mempool->memblocks_dma_arr, 0,
sizeof(struct vxge_hw_mempool_dma) *
mempool->memblocks_max);
/* allocate hash array of items */ /* allocate hash array of items */
mempool->items_arr = mempool->items_arr =
(void **) vmalloc(sizeof(void *) * mempool->items_max); (void **) vzalloc(sizeof(void *) * mempool->items_max);
if (mempool->items_arr == NULL) { if (mempool->items_arr == NULL) {
__vxge_hw_mempool_destroy(mempool); __vxge_hw_mempool_destroy(mempool);
status = VXGE_HW_ERR_OUT_OF_MEMORY; status = VXGE_HW_ERR_OUT_OF_MEMORY;
mempool = NULL; mempool = NULL;
goto exit; goto exit;
} }
memset(mempool->items_arr, 0, sizeof(void *) * mempool->items_max);
/* calculate initial number of memblocks */ /* calculate initial number of memblocks */
memblocks_to_allocate = (mempool->items_initial + memblocks_to_allocate = (mempool->items_initial +
@ -4272,14 +4259,12 @@ vxge_hw_vpath_open(struct __vxge_hw_device *hldev,
goto vpath_open_exit1; goto vpath_open_exit1;
vp = (struct __vxge_hw_vpath_handle *) vp = (struct __vxge_hw_vpath_handle *)
vmalloc(sizeof(struct __vxge_hw_vpath_handle)); vzalloc(sizeof(struct __vxge_hw_vpath_handle));
if (vp == NULL) { if (vp == NULL) {
status = VXGE_HW_ERR_OUT_OF_MEMORY; status = VXGE_HW_ERR_OUT_OF_MEMORY;
goto vpath_open_exit2; goto vpath_open_exit2;
} }
memset(vp, 0, sizeof(struct __vxge_hw_vpath_handle));
vp->vpath = vpath; vp->vpath = vpath;
if (vpath->vp_config->fifo.enable == VXGE_HW_FIFO_ENABLE) { if (vpath->vp_config->fifo.enable == VXGE_HW_FIFO_ENABLE) {