mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-01 10:45:49 +00:00
ptp: ocp: Fix error path for pci_ocp_device_init()
If ptp_ocp_device_init() fails, pci_disable_device() is skipped.
Fix the error handling so this case is covered. Update ptp_ocp_remove()
so the normal exit path is identical.
Reported-by: Hulk Robot <hulkci@huawei.com>
Fixes: 773bda9649
("ptp: ocp: Expose various resources on the timecard.")
Signed-off-by: Jonathan Lemon <jonathan.lemon@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
7c8075728f
commit
d9fdbf132d
@ -1438,7 +1438,7 @@ ptp_ocp_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||
bp = devlink_priv(devlink);
|
||||
err = ptp_ocp_device_init(bp, pdev);
|
||||
if (err)
|
||||
goto out_unregister;
|
||||
goto out_disable;
|
||||
|
||||
/* compat mode.
|
||||
* Older FPGA firmware only returns 2 irq's.
|
||||
@ -1476,8 +1476,9 @@ ptp_ocp_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||
|
||||
out:
|
||||
ptp_ocp_detach(bp);
|
||||
pci_disable_device(pdev);
|
||||
pci_set_drvdata(pdev, NULL);
|
||||
out_disable:
|
||||
pci_disable_device(pdev);
|
||||
out_unregister:
|
||||
devlink_unregister(devlink);
|
||||
out_free:
|
||||
@ -1493,8 +1494,8 @@ ptp_ocp_remove(struct pci_dev *pdev)
|
||||
struct devlink *devlink = priv_to_devlink(bp);
|
||||
|
||||
ptp_ocp_detach(bp);
|
||||
pci_disable_device(pdev);
|
||||
pci_set_drvdata(pdev, NULL);
|
||||
pci_disable_device(pdev);
|
||||
|
||||
devlink_unregister(devlink);
|
||||
devlink_free(devlink);
|
||||
|
Loading…
Reference in New Issue
Block a user