Skip to content

Commit

Permalink
qlge: Only free resources if they were allocated
Browse files Browse the repository at this point in the history
Currently qlge tries to release regions even if they were not allocated.
This causes messages like the following in the kernel log

Trying to free nonexistent resource <00000000006af400-00000000006af4ff>
Trying to free nonexistent resource <00003c04ff9f4000-00003c04ff9f7fff>
Trying to free nonexistent resource <00003c04ffc00000-00003c04ffcfffff>

This patch fixes the goto logic in order to not release the resources
if they were not allocated.

Signed-off-by: Breno Leitao <leitao@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Breno Leitao authored and David S. Miller committed Jan 25, 2010
1 parent d7c7544 commit 4f9a91c
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions drivers/net/qlge/qlge_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -4119,7 +4119,7 @@ static int __devinit ql_init_device(struct pci_dev *pdev,
err = pcie_set_readrq(pdev, 4096);
if (err) {
dev_err(&pdev->dev, "Set readrq failed.\n");
goto err_out;
goto err_out1;
}

err = pci_request_regions(pdev, DRV_NAME);
Expand All @@ -4140,7 +4140,7 @@ static int __devinit ql_init_device(struct pci_dev *pdev,

if (err) {
dev_err(&pdev->dev, "No usable DMA configuration.\n");
goto err_out;
goto err_out2;
}

/* Set PCIe reset type for EEH to fundamental. */
Expand All @@ -4152,7 +4152,7 @@ static int __devinit ql_init_device(struct pci_dev *pdev,
if (!qdev->reg_base) {
dev_err(&pdev->dev, "Register mapping failed.\n");
err = -ENOMEM;
goto err_out;
goto err_out2;
}

qdev->doorbell_area_size = pci_resource_len(pdev, 3);
Expand All @@ -4162,14 +4162,14 @@ static int __devinit ql_init_device(struct pci_dev *pdev,
if (!qdev->doorbell_area) {
dev_err(&pdev->dev, "Doorbell register mapping failed.\n");
err = -ENOMEM;
goto err_out;
goto err_out2;
}

err = ql_get_board_info(qdev);
if (err) {
dev_err(&pdev->dev, "Register access failed.\n");
err = -EIO;
goto err_out;
goto err_out2;
}
qdev->msg_enable = netif_msg_init(debug, default_msg);
spin_lock_init(&qdev->hw_lock);
Expand All @@ -4179,7 +4179,7 @@ static int __devinit ql_init_device(struct pci_dev *pdev,
err = qdev->nic_ops->get_flash(qdev);
if (err) {
dev_err(&pdev->dev, "Invalid FLASH.\n");
goto err_out;
goto err_out2;
}

memcpy(ndev->perm_addr, ndev->dev_addr, ndev->addr_len);
Expand Down Expand Up @@ -4212,8 +4212,9 @@ static int __devinit ql_init_device(struct pci_dev *pdev,
DRV_NAME, DRV_VERSION);
}
return 0;
err_out:
err_out2:
ql_release_all(pdev);
err_out1:
pci_disable_device(pdev);
return err;
}
Expand Down

0 comments on commit 4f9a91c

Please sign in to comment.