ptp_pch: fix error handling in pch_probe()

Fix to release resources when ptp_clock_register() fail instead
of return error code directly.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Wei Yongjun
2013-05-22 23:59:28 +00:00
committed by David S. Miller
parent 4d2593cc65
commit 0d8c3e77e7

View File

@@ -628,9 +628,10 @@ pch_probe(struct pci_dev *pdev, const struct pci_device_id *id)
chip->caps = ptp_pch_caps; chip->caps = ptp_pch_caps;
chip->ptp_clock = ptp_clock_register(&chip->caps, &pdev->dev); chip->ptp_clock = ptp_clock_register(&chip->caps, &pdev->dev);
if (IS_ERR(chip->ptp_clock)) {
if (IS_ERR(chip->ptp_clock)) ret = PTR_ERR(chip->ptp_clock);
return PTR_ERR(chip->ptp_clock); goto err_ptp_clock_reg;
}
spin_lock_init(&chip->register_lock); spin_lock_init(&chip->register_lock);
@@ -669,6 +670,7 @@ pch_probe(struct pci_dev *pdev, const struct pci_device_id *id)
err_req_irq: err_req_irq:
ptp_clock_unregister(chip->ptp_clock); ptp_clock_unregister(chip->ptp_clock);
err_ptp_clock_reg:
iounmap(chip->regs); iounmap(chip->regs);
chip->regs = NULL; chip->regs = NULL;