unsigned int i;
        int ret;
 
-       clk_prepare_enable(priv->clk);
+       ret = clk_prepare_enable(priv->clk);
+       if (ret) {
+               netdev_err(dev, "could not enable priv clock\n");
+               return ret;
+       }
 
        /* Reset UniMAC */
        umac_reset(priv);
                goto err_deregister_notifier;
        }
 
-       clk_prepare_enable(priv->clk);
+       ret = clk_prepare_enable(priv->clk);
+       if (ret) {
+               dev_err(&pdev->dev, "could not enable priv clock\n");
+               goto err_deregister_netdev;
+       }
 
        priv->rev = topctrl_readl(priv, REV_CNTL) & REV_MASK;
        dev_info(&pdev->dev,
 
        return 0;
 
+err_deregister_netdev:
+       unregister_netdev(dev);
 err_deregister_notifier:
        unregister_netdevice_notifier(&priv->netdev_notifier);
 err_deregister_fixed_link:
        if (!netif_running(dev))
                return 0;
 
-       clk_prepare_enable(priv->clk);
+       ret = clk_prepare_enable(priv->clk);
+       if (ret) {
+               netdev_err(dev, "could not enable priv clock\n");
+               return ret;
+       }
+
        if (priv->wolopts)
                clk_disable_unprepare(priv->wol_clk);