pf->msg_enable = netif_msg_init(debug, ICE_DFLT_NETIF_M);
 
-       ice_devlink_register(pf);
-
 #ifndef CONFIG_DYNAMIC_DEBUG
        if (debug < -1)
                hw->debug_mask = debug;
                dev_warn(dev, "RDMA is not supported on this device\n");
        }
 
+       ice_devlink_register(pf);
        return 0;
 
 err_init_aux_unroll:
        ice_devlink_destroy_regions(pf);
        ice_deinit_hw(hw);
 err_exit_unroll:
-       ice_devlink_unregister(pf);
        pci_disable_pcie_error_reporting(pdev);
        pci_disable_device(pdev);
        return err;
        struct ice_pf *pf = pci_get_drvdata(pdev);
        int i;
 
+       ice_devlink_unregister(pf);
        for (i = 0; i < ICE_MAX_RESET_WAIT; i++) {
                if (!ice_is_reset_in_progress(pf->state))
                        break;
        ice_deinit_pf(pf);
        ice_devlink_destroy_regions(pf);
        ice_deinit_hw(&pf->hw);
-       ice_devlink_unregister(pf);
 
        /* Issue a PFR as part of the prescribed driver unload flow.  Do not
         * do it via ice_schedule_reset() since there is no need to rebuild