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:
committed by
David S. Miller
parent
4d2593cc65
commit
0d8c3e77e7
@@ -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;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user