attrs.flavour = DEVLINK_PORT_FLAVOUR_PHYSICAL;
        devlink_port_attrs_set(&ionic->dl_port, &attrs);
        err = devlink_port_register(dl, &ionic->dl_port, 0);
-       if (err)
+       if (err) {
                dev_err(ionic->dev, "devlink_port_register failed: %d\n", err);
-       else
-               devlink_port_type_eth_set(&ionic->dl_port,
-                                         ionic->lif->netdev);
+               devlink_unregister(dl);
+               return err;
+       }
 
-       return err;
+       devlink_port_type_eth_set(&ionic->dl_port, ionic->lif->netdev);
+       return 0;
 }
 
 void ionic_devlink_unregister(struct ionic *ionic)
 {
        struct devlink *dl = priv_to_devlink(ionic);
 
-       if (ionic->dl_port.registered)
-               devlink_port_unregister(&ionic->dl_port);
+       devlink_port_unregister(&ionic->dl_port);
        devlink_unregister(dl);
 }