if (ucc_fast_init(uf_info, &ugeth->uccf)) {
                if (netif_msg_probe(ugeth))
                        ugeth_err("%s: Failed to init uccf.", __func__);
-               ucc_geth_memclean(ugeth);
                return -ENOMEM;
        }
 
                if (netif_msg_ifup(ugeth))
                        ugeth_err("%s: Bad number of Rx threads value.",
                                        __func__);
-               ucc_geth_memclean(ugeth);
                return -EINVAL;
                break;
        }
                if (netif_msg_ifup(ugeth))
                        ugeth_err("%s: Bad number of Tx threads value.",
                                        __func__);
-               ucc_geth_memclean(ugeth);
                return -EINVAL;
                break;
        }
                if (netif_msg_ifup(ugeth))
                        ugeth_err("%s: IPGIFG initialization parameter too large.",
                                  __func__);
-               ucc_geth_memclean(ugeth);
                return ret_val;
        }
 
                if (netif_msg_ifup(ugeth))
                        ugeth_err("%s: Half Duplex initialization parameter too large.",
                          __func__);
-               ucc_geth_memclean(ugeth);
                return ret_val;
        }
 
                                ugeth_err
                                    ("%s: Can not allocate memory for Tx bd rings.",
                                     __func__);
-                       ucc_geth_memclean(ugeth);
                        return -ENOMEM;
                }
                /* Zero unused end of bd ring, according to spec */
                                ugeth_err
                                    ("%s: Can not allocate memory for Rx bd rings.",
                                     __func__);
-                       ucc_geth_memclean(ugeth);
                        return -ENOMEM;
                }
        }
                        if (netif_msg_ifup(ugeth))
                                ugeth_err("%s: Could not allocate tx_skbuff",
                                          __func__);
-                       ucc_geth_memclean(ugeth);
                        return -ENOMEM;
                }
 
                        if (netif_msg_ifup(ugeth))
                                ugeth_err("%s: Could not allocate rx_skbuff",
                                          __func__);
-                       ucc_geth_memclean(ugeth);
                        return -ENOMEM;
                }
 
                        ugeth_err
                            ("%s: Can not allocate DPRAM memory for p_tx_glbl_pram.",
                             __func__);
-               ucc_geth_memclean(ugeth);
                return -ENOMEM;
        }
        ugeth->p_tx_glbl_pram =
                        ugeth_err
                            ("%s: Can not allocate DPRAM memory for p_thread_data_tx.",
                             __func__);
-               ucc_geth_memclean(ugeth);
                return -ENOMEM;
        }
 
                        ugeth_err
                            ("%s: Can not allocate DPRAM memory for p_send_q_mem_reg.",
                             __func__);
-               ucc_geth_memclean(ugeth);
                return -ENOMEM;
        }
 
                                ugeth_err
                                 ("%s: Can not allocate DPRAM memory for p_scheduler.",
                                     __func__);
-                       ucc_geth_memclean(ugeth);
                        return -ENOMEM;
                }
 
                                    ("%s: Can not allocate DPRAM memory for"
                                        " p_tx_fw_statistics_pram.",
                                        __func__);
-                       ucc_geth_memclean(ugeth);
                        return -ENOMEM;
                }
                ugeth->p_tx_fw_statistics_pram =
                        ugeth_err
                            ("%s: Can not allocate DPRAM memory for p_rx_glbl_pram.",
                             __func__);
-               ucc_geth_memclean(ugeth);
                return -ENOMEM;
        }
        ugeth->p_rx_glbl_pram =
                        ugeth_err
                            ("%s: Can not allocate DPRAM memory for p_thread_data_rx.",
                             __func__);
-               ucc_geth_memclean(ugeth);
                return -ENOMEM;
        }
 
                                ugeth_err
                                        ("%s: Can not allocate DPRAM memory for"
                                        " p_rx_fw_statistics_pram.", __func__);
-                       ucc_geth_memclean(ugeth);
                        return -ENOMEM;
                }
                ugeth->p_rx_fw_statistics_pram =
                        ugeth_err
                            ("%s: Can not allocate DPRAM memory for"
                                " p_rx_irq_coalescing_tbl.", __func__);
-               ucc_geth_memclean(ugeth);
                return -ENOMEM;
        }
 
                        ugeth_err
                            ("%s: Can not allocate DPRAM memory for p_rx_bd_qs_tbl.",
                             __func__);
-               ucc_geth_memclean(ugeth);
                return -ENOMEM;
        }
 
                        if (netif_msg_ifup(ugeth))
                                ugeth_err("%s: Null Extended Filtering Chain Pointer.",
                                          __func__);
-                       ucc_geth_memclean(ugeth);
                        return -EINVAL;
                }
 
                                ugeth_err
                                        ("%s: Can not allocate DPRAM memory for"
                                        " p_exf_glbl_param.", __func__);
-                       ucc_geth_memclean(ugeth);
                        return -ENOMEM;
                }
 
                        ugeth_err
                            ("%s: Can not allocate memory for"
                                " p_UccInitEnetParamShadows.", __func__);
-               ucc_geth_memclean(ugeth);
                return -ENOMEM;
        }
        /* Zero out *p_init_enet_param_shadow */
                if (netif_msg_ifup(ugeth))
                        ugeth_err("%s: Invalid largest External Lookup Key Size.",
                                  __func__);
-               ucc_geth_memclean(ugeth);
                return -EINVAL;
        }
        ugeth->p_init_enet_param_shadow->largestexternallookupkeysize =
                if (netif_msg_ifup(ugeth))
                                ugeth_err("%s: Can not fill p_init_enet_param_shadow.",
                                        __func__);
-               ucc_geth_memclean(ugeth);
                return ret_val;
        }
 
                if (netif_msg_ifup(ugeth))
                        ugeth_err("%s: Can not fill p_init_enet_param_shadow.",
                                  __func__);
-               ucc_geth_memclean(ugeth);
                return ret_val;
        }
 
                        if (netif_msg_ifup(ugeth))
                                ugeth_err("%s: Can not fill Rx bds with buffers.",
                                          __func__);
-                       ucc_geth_memclean(ugeth);
                        return ret_val;
                }
        }
                        ugeth_err
                            ("%s: Can not allocate DPRAM memory for p_init_enet_pram.",
                             __func__);
-               ucc_geth_memclean(ugeth);
                return -ENOMEM;
        }
        p_init_enet_pram =
        if (err) {
                if (netif_msg_ifup(ugeth))
                        ugeth_err("%s: Cannot enable net device, aborting.", dev->name);
-               ucc_geth_stop(ugeth);
                goto out_err;
        }
 
                if (netif_msg_ifup(ugeth))
                        ugeth_err("%s: Cannot get IRQ for net device, aborting.",
                                  dev->name);
-               ucc_geth_stop(ugeth);
                goto out_err;
        }
 
 
 out_err:
        napi_disable(&ugeth->napi);
-
+       ucc_geth_stop(ugeth);
        return err;
 }