ptp: ocp: Move devlink registration to be last devlink command
authorLeon Romanovsky <leonro@nvidia.com>
Sat, 25 Sep 2021 11:22:59 +0000 (14:22 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 27 Sep 2021 15:32:00 +0000 (16:32 +0100)
This change prevents from users to access device before devlink is
fully configured.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/ptp/ptp_ocp.c

index 4c25467..34f943c 100644 (file)
@@ -2455,7 +2455,6 @@ ptp_ocp_probe(struct pci_dev *pdev, const struct pci_device_id *id)
                return -ENOMEM;
        }
 
-       devlink_register(devlink);
        err = pci_enable_device(pdev);
        if (err) {
                dev_err(&pdev->dev, "pci_enable_device\n");
@@ -2497,7 +2496,7 @@ ptp_ocp_probe(struct pci_dev *pdev, const struct pci_device_id *id)
                goto out;
 
        ptp_ocp_info(bp);
-
+       devlink_register(devlink);
        return 0;
 
 out:
@@ -2506,7 +2505,6 @@ out:
 out_disable:
        pci_disable_device(pdev);
 out_unregister:
-       devlink_unregister(devlink);
        devlink_free(devlink);
        return err;
 }
@@ -2517,11 +2515,11 @@ ptp_ocp_remove(struct pci_dev *pdev)
        struct ptp_ocp *bp = pci_get_drvdata(pdev);
        struct devlink *devlink = priv_to_devlink(bp);
 
+       devlink_unregister(devlink);
        ptp_ocp_detach(bp);
        pci_set_drvdata(pdev, NULL);
        pci_disable_device(pdev);
 
-       devlink_unregister(devlink);
        devlink_free(devlink);
 }