ionic: change order of devlink port register and netdev register
authorJiri Pirko <jiri@nvidia.com>
Mon, 26 Sep 2022 11:09:38 +0000 (13:09 +0200)
committerJakub Kicinski <kuba@kernel.org>
Tue, 27 Sep 2022 14:54:45 +0000 (07:54 -0700)
Make sure that devlink port is registered first and register netdev
after. Unregister netdev before devlnk port unregister.

Signed-off-by: Jiri Pirko <jiri@nvidia.com>
Acked-by: Shannon Nelson <snelson@pensando.io>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c

index 0a7a757..ce436e9 100644 (file)
@@ -320,16 +320,16 @@ static int ionic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
                        dev_err(dev, "Cannot enable existing VFs: %d\n", err);
        }
 
-       err = ionic_lif_register(ionic->lif);
+       err = ionic_devlink_register(ionic);
        if (err) {
-               dev_err(dev, "Cannot register LIF: %d, aborting\n", err);
+               dev_err(dev, "Cannot register devlink: %d\n", err);
                goto err_out_deinit_lifs;
        }
 
-       err = ionic_devlink_register(ionic);
+       err = ionic_lif_register(ionic->lif);
        if (err) {
-               dev_err(dev, "Cannot register devlink: %d\n", err);
-               goto err_out_deregister_lifs;
+               dev_err(dev, "Cannot register LIF: %d, aborting\n", err);
+               goto err_out_deregister_devlink;
        }
 
        mod_timer(&ionic->watchdog_timer,
@@ -337,8 +337,8 @@ static int ionic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 
        return 0;
 
-err_out_deregister_lifs:
-       ionic_lif_unregister(ionic->lif);
+err_out_deregister_devlink:
+       ionic_devlink_unregister(ionic);
 err_out_deinit_lifs:
        ionic_vf_dealloc(ionic);
        ionic_lif_deinit(ionic->lif);
@@ -380,8 +380,8 @@ static void ionic_remove(struct pci_dev *pdev)
        del_timer_sync(&ionic->watchdog_timer);
 
        if (ionic->lif) {
-               ionic_devlink_unregister(ionic);
                ionic_lif_unregister(ionic->lif);
+               ionic_devlink_unregister(ionic);
                ionic_lif_deinit(ionic->lif);
                ionic_lif_free(ionic->lif);
                ionic->lif = NULL;