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:
Родитель
fe6d2a38b2
Коммит
89bf67f1f0
|
@ -766,13 +766,10 @@ bnx2_alloc_rx_mem(struct bnx2 *bp)
|
|||
int j;
|
||||
|
||||
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)
|
||||
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++) {
|
||||
rxr->rx_desc_ring[j] =
|
||||
dma_alloc_coherent(&bp->pdev->dev,
|
||||
|
@ -785,13 +782,11 @@ bnx2_alloc_rx_mem(struct bnx2 *bp)
|
|||
}
|
||||
|
||||
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);
|
||||
if (rxr->rx_pg_ring == NULL)
|
||||
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++) {
|
||||
|
|
|
@ -1164,12 +1164,10 @@ static void cxgb_redirect(struct dst_entry *old, struct dst_entry *new)
|
|||
*/
|
||||
void *cxgb_alloc_mem(unsigned long size)
|
||||
{
|
||||
void *p = kmalloc(size, GFP_KERNEL);
|
||||
void *p = kzalloc(size, GFP_KERNEL);
|
||||
|
||||
if (!p)
|
||||
p = vmalloc(size);
|
||||
if (p)
|
||||
memset(p, 0, size);
|
||||
p = vzalloc(size);
|
||||
return p;
|
||||
}
|
||||
|
||||
|
|
|
@ -868,12 +868,10 @@ out: release_firmware(fw);
|
|||
*/
|
||||
void *t4_alloc_mem(size_t size)
|
||||
{
|
||||
void *p = kmalloc(size, GFP_KERNEL);
|
||||
void *p = kzalloc(size, GFP_KERNEL);
|
||||
|
||||
if (!p)
|
||||
p = vmalloc(size);
|
||||
if (p)
|
||||
memset(p, 0, size);
|
||||
p = vzalloc(size);
|
||||
return p;
|
||||
}
|
||||
|
||||
|
|
|
@ -1425,13 +1425,12 @@ static int e1000_setup_tx_resources(struct e1000_adapter *adapter,
|
|||
int size;
|
||||
|
||||
size = sizeof(struct e1000_buffer) * txdr->count;
|
||||
txdr->buffer_info = vmalloc(size);
|
||||
txdr->buffer_info = vzalloc(size);
|
||||
if (!txdr->buffer_info) {
|
||||
e_err(probe, "Unable to allocate memory for the Tx descriptor "
|
||||
"ring\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
memset(txdr->buffer_info, 0, size);
|
||||
|
||||
/* round up to nearest 4K */
|
||||
|
||||
|
@ -1621,13 +1620,12 @@ static int e1000_setup_rx_resources(struct e1000_adapter *adapter,
|
|||
int size, desc_len;
|
||||
|
||||
size = sizeof(struct e1000_buffer) * rxdr->count;
|
||||
rxdr->buffer_info = vmalloc(size);
|
||||
rxdr->buffer_info = vzalloc(size);
|
||||
if (!rxdr->buffer_info) {
|
||||
e_err(probe, "Unable to allocate memory for the Rx descriptor "
|
||||
"ring\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
memset(rxdr->buffer_info, 0, size);
|
||||
|
||||
desc_len = sizeof(struct e1000_rx_desc);
|
||||
|
||||
|
|
|
@ -2059,10 +2059,9 @@ int e1000e_setup_tx_resources(struct e1000_adapter *adapter)
|
|||
int err = -ENOMEM, size;
|
||||
|
||||
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)
|
||||
goto err;
|
||||
memset(tx_ring->buffer_info, 0, size);
|
||||
|
||||
/* round up to nearest 4K */
|
||||
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;
|
||||
|
||||
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)
|
||||
goto err;
|
||||
memset(rx_ring->buffer_info, 0, size);
|
||||
|
||||
for (i = 0; i < rx_ring->count; i++) {
|
||||
buffer_info = &rx_ring->buffer_info[i];
|
||||
|
|
|
@ -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;
|
||||
|
||||
q_skba->arr = vmalloc(arr_size);
|
||||
q_skba->arr = vzalloc(arr_size);
|
||||
if (!q_skba->arr)
|
||||
return -ENOMEM;
|
||||
|
||||
memset(q_skba->arr, 0, arr_size);
|
||||
|
||||
q_skba->len = max_q_entries;
|
||||
q_skba->index = 0;
|
||||
q_skba->os_skbs = 0;
|
||||
|
|
|
@ -2436,10 +2436,9 @@ int igb_setup_tx_resources(struct igb_ring *tx_ring)
|
|||
int size;
|
||||
|
||||
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)
|
||||
goto err;
|
||||
memset(tx_ring->buffer_info, 0, size);
|
||||
|
||||
/* round up to nearest 4K */
|
||||
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;
|
||||
|
||||
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)
|
||||
goto err;
|
||||
memset(rx_ring->buffer_info, 0, size);
|
||||
|
||||
desc_len = sizeof(union e1000_adv_rx_desc);
|
||||
|
||||
|
|
|
@ -430,10 +430,9 @@ int igbvf_setup_tx_resources(struct igbvf_adapter *adapter,
|
|||
int size;
|
||||
|
||||
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)
|
||||
goto err;
|
||||
memset(tx_ring->buffer_info, 0, size);
|
||||
|
||||
/* round up to nearest 4K */
|
||||
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;
|
||||
|
||||
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)
|
||||
goto err;
|
||||
memset(rx_ring->buffer_info, 0, size);
|
||||
|
||||
desc_len = sizeof(union e1000_adv_rx_desc);
|
||||
|
||||
|
|
|
@ -669,13 +669,12 @@ ixgb_setup_tx_resources(struct ixgb_adapter *adapter)
|
|||
int size;
|
||||
|
||||
size = sizeof(struct ixgb_buffer) * txdr->count;
|
||||
txdr->buffer_info = vmalloc(size);
|
||||
txdr->buffer_info = vzalloc(size);
|
||||
if (!txdr->buffer_info) {
|
||||
netif_err(adapter, probe, adapter->netdev,
|
||||
"Unable to allocate transmit descriptor ring memory\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
memset(txdr->buffer_info, 0, size);
|
||||
|
||||
/* round up to nearest 4K */
|
||||
|
||||
|
@ -759,13 +758,12 @@ ixgb_setup_rx_resources(struct ixgb_adapter *adapter)
|
|||
int size;
|
||||
|
||||
size = sizeof(struct ixgb_buffer) * rxdr->count;
|
||||
rxdr->buffer_info = vmalloc(size);
|
||||
rxdr->buffer_info = vzalloc(size);
|
||||
if (!rxdr->buffer_info) {
|
||||
netif_err(adapter, probe, adapter->netdev,
|
||||
"Unable to allocate receive descriptor ring\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
memset(rxdr->buffer_info, 0, size);
|
||||
|
||||
/* Round up to nearest 4K */
|
||||
|
||||
|
|
|
@ -5181,12 +5181,11 @@ int ixgbe_setup_tx_resources(struct ixgbe_ring *tx_ring)
|
|||
int size;
|
||||
|
||||
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)
|
||||
tx_ring->tx_buffer_info = vmalloc(size);
|
||||
tx_ring->tx_buffer_info = vzalloc(size);
|
||||
if (!tx_ring->tx_buffer_info)
|
||||
goto err;
|
||||
memset(tx_ring->tx_buffer_info, 0, size);
|
||||
|
||||
/* round up to nearest 4K */
|
||||
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;
|
||||
|
||||
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)
|
||||
rx_ring->rx_buffer_info = vmalloc(size);
|
||||
rx_ring->rx_buffer_info = vzalloc(size);
|
||||
if (!rx_ring->rx_buffer_info)
|
||||
goto err;
|
||||
memset(rx_ring->rx_buffer_info, 0, size);
|
||||
|
||||
/* Round up to nearest 4K */
|
||||
rx_ring->size = rx_ring->count * sizeof(union ixgbe_adv_rx_desc);
|
||||
|
|
|
@ -2489,10 +2489,9 @@ int ixgbevf_setup_tx_resources(struct ixgbevf_adapter *adapter,
|
|||
int size;
|
||||
|
||||
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)
|
||||
goto err;
|
||||
memset(tx_ring->tx_buffer_info, 0, size);
|
||||
|
||||
/* round up to nearest 4K */
|
||||
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;
|
||||
|
||||
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) {
|
||||
hw_dbg(&adapter->hw,
|
||||
"Unable to vmalloc buffer memory for "
|
||||
"the receive descriptor ring\n");
|
||||
goto alloc_failed;
|
||||
}
|
||||
memset(rx_ring->rx_buffer_info, 0, size);
|
||||
|
||||
/* Round up to nearest 4K */
|
||||
rx_ring->size = rx_ring->count * sizeof(union ixgbe_adv_rx_desc);
|
||||
|
|
|
@ -214,13 +214,12 @@ int netxen_alloc_sw_resources(struct netxen_adapter *adapter)
|
|||
tx_ring->num_desc = adapter->num_txd;
|
||||
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) {
|
||||
dev_err(&pdev->dev, "%s: failed to allocate cmd buffer ring\n",
|
||||
netdev->name);
|
||||
goto err_out;
|
||||
}
|
||||
memset(cmd_buf_arr, 0, TX_BUFF_RINGSIZE(tx_ring));
|
||||
tx_ring->cmd_buf_arr = cmd_buf_arr;
|
||||
|
||||
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 *)
|
||||
vmalloc(RCV_BUFF_RINGSIZE(rds_ring));
|
||||
vzalloc(RCV_BUFF_RINGSIZE(rds_ring));
|
||||
if (rds_ring->rx_buf_arr == NULL) {
|
||||
printk(KERN_ERR "%s: Failed to allocate "
|
||||
"rx buffer ring %d\n",
|
||||
|
@ -288,7 +287,6 @@ int netxen_alloc_sw_resources(struct netxen_adapter *adapter)
|
|||
/* free whatever was already allocated */
|
||||
goto err_out;
|
||||
}
|
||||
memset(rds_ring->rx_buf_arr, 0, RCV_BUFF_RINGSIZE(rds_ring));
|
||||
INIT_LIST_HEAD(&rds_ring->free_list);
|
||||
/*
|
||||
* Now go through all of them, set reference handles
|
||||
|
|
|
@ -1523,12 +1523,11 @@ int pch_gbe_setup_tx_resources(struct pch_gbe_adapter *adapter,
|
|||
int desNo;
|
||||
|
||||
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) {
|
||||
pr_err("Unable to allocate memory for the buffer infomation\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
memset(tx_ring->buffer_info, 0, size);
|
||||
|
||||
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;
|
||||
|
||||
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) {
|
||||
pr_err("Unable to allocate memory for the receive descriptor ring\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
memset(rx_ring->buffer_info, 0, size);
|
||||
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->dma, GFP_KERNEL);
|
||||
|
|
|
@ -673,8 +673,7 @@ static int __init pptp_init_module(void)
|
|||
int err = 0;
|
||||
pr_info("PPTP driver version " PPTP_DRIVER_VERSION "\n");
|
||||
|
||||
callid_sock = __vmalloc((MAX_CALLID + 1) * sizeof(void *),
|
||||
GFP_KERNEL | __GFP_ZERO, PAGE_KERNEL);
|
||||
callid_sock = vzalloc((MAX_CALLID + 1) * sizeof(void *));
|
||||
if (!callid_sock) {
|
||||
pr_err("PPTP: cann't allocate memory\n");
|
||||
return -ENOMEM;
|
||||
|
|
|
@ -236,12 +236,11 @@ int qlcnic_alloc_sw_resources(struct qlcnic_adapter *adapter)
|
|||
tx_ring->num_desc = adapter->num_txd;
|
||||
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) {
|
||||
dev_err(&netdev->dev, "failed to allocate cmd buffer ring\n");
|
||||
goto err_out;
|
||||
}
|
||||
memset(cmd_buf_arr, 0, TX_BUFF_RINGSIZE(tx_ring));
|
||||
tx_ring->cmd_buf_arr = cmd_buf_arr;
|
||||
|
||||
recv_ctx = &adapter->recv_ctx;
|
||||
|
@ -276,13 +275,12 @@ int qlcnic_alloc_sw_resources(struct qlcnic_adapter *adapter)
|
|||
break;
|
||||
}
|
||||
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) {
|
||||
dev_err(&netdev->dev, "Failed to allocate "
|
||||
"rx buffer ring %d\n", ring);
|
||||
goto err_out;
|
||||
}
|
||||
memset(rds_ring->rx_buf_arr, 0, RCV_BUFF_RINGSIZE(rds_ring));
|
||||
INIT_LIST_HEAD(&rds_ring->free_list);
|
||||
/*
|
||||
* Now go through all of them, set reference handles
|
||||
|
|
|
@ -428,10 +428,9 @@ int efx_probe_filters(struct efx_nic *efx)
|
|||
GFP_KERNEL);
|
||||
if (!table->used_bitmap)
|
||||
goto fail;
|
||||
table->spec = vmalloc(table->size * sizeof(*table->spec));
|
||||
table->spec = vzalloc(table->size * sizeof(*table->spec));
|
||||
if (!table->spec)
|
||||
goto fail;
|
||||
memset(table->spec, 0, table->size * sizeof(*table->spec));
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -1220,13 +1220,12 @@ vxge_hw_device_initialize(
|
|||
goto exit;
|
||||
|
||||
hldev = (struct __vxge_hw_device *)
|
||||
vmalloc(sizeof(struct __vxge_hw_device));
|
||||
vzalloc(sizeof(struct __vxge_hw_device));
|
||||
if (hldev == NULL) {
|
||||
status = VXGE_HW_ERR_OUT_OF_MEMORY;
|
||||
goto exit;
|
||||
}
|
||||
|
||||
memset(hldev, 0, sizeof(struct __vxge_hw_device));
|
||||
hldev->magic = VXGE_HW_DEVICE_MAGIC;
|
||||
|
||||
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.
|
||||
* This helps to minimize memory usage a lot. */
|
||||
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) {
|
||||
status = VXGE_HW_ERR_OUT_OF_MEMORY;
|
||||
goto exit;
|
||||
}
|
||||
|
||||
memset(mempool->memblocks_priv_arr[i], 0,
|
||||
mempool->items_priv_size * n_items);
|
||||
|
||||
/* allocate DMA-capable memblock */
|
||||
mempool->memblocks_arr[i] =
|
||||
__vxge_hw_blockpool_malloc(mempool->devh,
|
||||
|
@ -2145,12 +2141,11 @@ __vxge_hw_mempool_create(
|
|||
}
|
||||
|
||||
mempool = (struct vxge_hw_mempool *)
|
||||
vmalloc(sizeof(struct vxge_hw_mempool));
|
||||
vzalloc(sizeof(struct vxge_hw_mempool));
|
||||
if (mempool == NULL) {
|
||||
status = VXGE_HW_ERR_OUT_OF_MEMORY;
|
||||
goto exit;
|
||||
}
|
||||
memset(mempool, 0, sizeof(struct vxge_hw_mempool));
|
||||
|
||||
mempool->devh = devh;
|
||||
mempool->memblock_size = memblock_size;
|
||||
|
@ -2170,31 +2165,27 @@ __vxge_hw_mempool_create(
|
|||
|
||||
/* allocate array of memblocks */
|
||||
mempool->memblocks_arr =
|
||||
(void **) vmalloc(sizeof(void *) * mempool->memblocks_max);
|
||||
(void **) vzalloc(sizeof(void *) * mempool->memblocks_max);
|
||||
if (mempool->memblocks_arr == NULL) {
|
||||
__vxge_hw_mempool_destroy(mempool);
|
||||
status = VXGE_HW_ERR_OUT_OF_MEMORY;
|
||||
mempool = NULL;
|
||||
goto exit;
|
||||
}
|
||||
memset(mempool->memblocks_arr, 0,
|
||||
sizeof(void *) * mempool->memblocks_max);
|
||||
|
||||
/* allocate array of private parts of items per memblocks */
|
||||
mempool->memblocks_priv_arr =
|
||||
(void **) vmalloc(sizeof(void *) * mempool->memblocks_max);
|
||||
(void **) vzalloc(sizeof(void *) * mempool->memblocks_max);
|
||||
if (mempool->memblocks_priv_arr == NULL) {
|
||||
__vxge_hw_mempool_destroy(mempool);
|
||||
status = VXGE_HW_ERR_OUT_OF_MEMORY;
|
||||
mempool = NULL;
|
||||
goto exit;
|
||||
}
|
||||
memset(mempool->memblocks_priv_arr, 0,
|
||||
sizeof(void *) * mempool->memblocks_max);
|
||||
|
||||
/* allocate array of memblocks DMA objects */
|
||||
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);
|
||||
|
||||
if (mempool->memblocks_dma_arr == NULL) {
|
||||
|
@ -2203,20 +2194,16 @@ __vxge_hw_mempool_create(
|
|||
mempool = NULL;
|
||||
goto exit;
|
||||
}
|
||||
memset(mempool->memblocks_dma_arr, 0,
|
||||
sizeof(struct vxge_hw_mempool_dma) *
|
||||
mempool->memblocks_max);
|
||||
|
||||
/* allocate hash array of items */
|
||||
mempool->items_arr =
|
||||
(void **) vmalloc(sizeof(void *) * mempool->items_max);
|
||||
(void **) vzalloc(sizeof(void *) * mempool->items_max);
|
||||
if (mempool->items_arr == NULL) {
|
||||
__vxge_hw_mempool_destroy(mempool);
|
||||
status = VXGE_HW_ERR_OUT_OF_MEMORY;
|
||||
mempool = NULL;
|
||||
goto exit;
|
||||
}
|
||||
memset(mempool->items_arr, 0, sizeof(void *) * mempool->items_max);
|
||||
|
||||
/* calculate initial number of memblocks */
|
||||
memblocks_to_allocate = (mempool->items_initial +
|
||||
|
@ -4272,14 +4259,12 @@ vxge_hw_vpath_open(struct __vxge_hw_device *hldev,
|
|||
goto vpath_open_exit1;
|
||||
|
||||
vp = (struct __vxge_hw_vpath_handle *)
|
||||
vmalloc(sizeof(struct __vxge_hw_vpath_handle));
|
||||
vzalloc(sizeof(struct __vxge_hw_vpath_handle));
|
||||
if (vp == NULL) {
|
||||
status = VXGE_HW_ERR_OUT_OF_MEMORY;
|
||||
goto vpath_open_exit2;
|
||||
}
|
||||
|
||||
memset(vp, 0, sizeof(struct __vxge_hw_vpath_handle));
|
||||
|
||||
vp->vpath = vpath;
|
||||
|
||||
if (vpath->vp_config->fifo.enable == VXGE_HW_FIFO_ENABLE) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче