struct rcar_can_priv *priv = netdev_priv(ndev);
        u16 ctlr;
 
-       if (netif_running(ndev)) {
-               netif_stop_queue(ndev);
-               netif_device_detach(ndev);
-       }
+       if (!netif_running(ndev))
+               return 0;
+
+       netif_stop_queue(ndev);
+       netif_device_detach(ndev);
+
        ctlr = readw(&priv->regs->ctlr);
        ctlr |= RCAR_CAN_CTLR_CANM_HALT;
        writew(ctlr, &priv->regs->ctlr);
        u16 ctlr;
        int err;
 
+       if (!netif_running(ndev))
+               return 0;
+
        err = clk_enable(priv->clk);
        if (err) {
                netdev_err(ndev, "clk_enable() failed, error %d\n", err);
        writew(ctlr, &priv->regs->ctlr);
        priv->can.state = CAN_STATE_ERROR_ACTIVE;
 
-       if (netif_running(ndev)) {
-               netif_device_attach(ndev);
-               netif_start_queue(ndev);
-       }
+       netif_device_attach(ndev);
+       netif_start_queue(ndev);
+
        return 0;
 }