netxen: fix memory leaks in error path
Fixes memory leak in error path when memory allocation for adapter data structures fails. Signed-off-by: Amit Kumar Salecha <amit.salecha@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
44b496f685
commit
bf445080da
@@ -629,7 +629,8 @@ int netxen_alloc_hw_resources(struct netxen_adapter *adapter)
|
|||||||
if (addr == NULL) {
|
if (addr == NULL) {
|
||||||
dev_err(&pdev->dev, "%s: failed to allocate tx desc ring\n",
|
dev_err(&pdev->dev, "%s: failed to allocate tx desc ring\n",
|
||||||
netdev->name);
|
netdev->name);
|
||||||
return -ENOMEM;
|
err = -ENOMEM;
|
||||||
|
goto err_out_free;
|
||||||
}
|
}
|
||||||
|
|
||||||
tx_ring->desc_head = (struct cmd_desc_type0 *)addr;
|
tx_ring->desc_head = (struct cmd_desc_type0 *)addr;
|
||||||
|
@@ -218,7 +218,7 @@ int netxen_alloc_sw_resources(struct netxen_adapter *adapter)
|
|||||||
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);
|
||||||
return -ENOMEM;
|
goto err_out;
|
||||||
}
|
}
|
||||||
memset(cmd_buf_arr, 0, TX_BUFF_RINGSIZE(tx_ring));
|
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;
|
||||||
@@ -230,7 +230,7 @@ int netxen_alloc_sw_resources(struct netxen_adapter *adapter)
|
|||||||
if (rds_ring == NULL) {
|
if (rds_ring == NULL) {
|
||||||
dev_err(&pdev->dev, "%s: failed to allocate rds ring struct\n",
|
dev_err(&pdev->dev, "%s: failed to allocate rds ring struct\n",
|
||||||
netdev->name);
|
netdev->name);
|
||||||
return -ENOMEM;
|
goto err_out;
|
||||||
}
|
}
|
||||||
recv_ctx->rds_rings = rds_ring;
|
recv_ctx->rds_rings = rds_ring;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user