¶ms);
        if (err) {
                pr_err("Failed to register IPv4 top resource\n");
-               goto out;
+               goto err_out;
        }
 
        err = devl_resource_register(devlink, "fib", (u64)-1,
                                     NSIM_RESOURCE_IPV4, ¶ms);
        if (err) {
                pr_err("Failed to register IPv4 FIB resource\n");
-               return err;
+               goto err_out;
        }
 
        err = devl_resource_register(devlink, "fib-rules", (u64)-1,
                                     NSIM_RESOURCE_IPV4, ¶ms);
        if (err) {
                pr_err("Failed to register IPv4 FIB rules resource\n");
-               return err;
+               goto err_out;
        }
 
        /* Resources for IPv6 */
                                     ¶ms);
        if (err) {
                pr_err("Failed to register IPv6 top resource\n");
-               goto out;
+               goto err_out;
        }
 
        err = devl_resource_register(devlink, "fib", (u64)-1,
                                     NSIM_RESOURCE_IPV6, ¶ms);
        if (err) {
                pr_err("Failed to register IPv6 FIB resource\n");
-               return err;
+               goto err_out;
        }
 
        err = devl_resource_register(devlink, "fib-rules", (u64)-1,
                                     NSIM_RESOURCE_IPV6, ¶ms);
        if (err) {
                pr_err("Failed to register IPv6 FIB rules resource\n");
-               return err;
+               goto err_out;
        }
 
        /* Resources for nexthops */
                                     NSIM_RESOURCE_NEXTHOPS,
                                     DEVLINK_RESOURCE_ID_PARENT_TOP,
                                     ¶ms);
+       if (err) {
+               pr_err("Failed to register NEXTHOPS resource\n");
+               goto err_out;
+       }
+       return 0;
 
-out:
+err_out:
+       devl_resources_unregister(devlink);
        return err;
 }