fuse->clk = NULL;
 }
 
+static int tegra_fuse_add_lookups(struct tegra_fuse *fuse)
+{
+       fuse->lookups = kmemdup_array(fuse->soc->lookups, sizeof(*fuse->lookups),
+                                     fuse->soc->num_lookups, GFP_KERNEL);
+       if (!fuse->lookups)
+               return -ENOMEM;
+
+       nvmem_add_cell_lookups(fuse->lookups, fuse->soc->num_lookups);
+
+       return 0;
+}
+
 static int tegra_fuse_probe(struct platform_device *pdev)
 {
        void __iomem *base = fuse->base;
        const struct of_device_id *match;
        struct device_node *np;
        struct resource regs;
+       int err;
 
        tegra_init_apbmisc();
 
        pr_debug("Tegra CPU Speedo ID %d, SoC Speedo ID %d\n",
                 tegra_sku_info.cpu_speedo_id, tegra_sku_info.soc_speedo_id);
 
-       if (fuse->soc->lookups) {
-               size_t size = sizeof(*fuse->lookups) * fuse->soc->num_lookups;
-
-               fuse->lookups = kmemdup(fuse->soc->lookups, size, GFP_KERNEL);
-               if (fuse->lookups)
-                       nvmem_add_cell_lookups(fuse->lookups, fuse->soc->num_lookups);
-       }
+       err = tegra_fuse_add_lookups(fuse);
+       if (err)
+               pr_err("failed to add FUSE lookups\n");
 
-       return 0;
+       return err;
 }
 early_initcall(tegra_init_fuse);