static struct platform_driver anarion_dwmac_driver = {
        .probe  = anarion_dwmac_probe,
-       .remove = stmmac_pltfr_remove,
+       .remove_new = stmmac_pltfr_remove,
        .driver = {
                .name           = "anarion-dwmac",
                .pm             = &stmmac_pltfr_pm_ops,
 
 
 static struct platform_driver dwmac_generic_driver = {
        .probe  = dwmac_generic_probe,
-       .remove = stmmac_pltfr_remove,
+       .remove_new = stmmac_pltfr_remove,
        .driver = {
                .name           = STMMAC_RESOURCE_NAME,
                .pm             = &stmmac_pltfr_pm_ops,
 
 
 static struct platform_driver imx_dwmac_driver = {
        .probe  = imx_dwmac_probe,
-       .remove = stmmac_pltfr_remove,
+       .remove_new = stmmac_pltfr_remove,
        .driver = {
                .name           = "imx-dwmac",
                .pm             = &stmmac_pltfr_pm_ops,
 
 
 static struct platform_driver ingenic_mac_driver = {
        .probe          = ingenic_mac_probe,
-       .remove         = stmmac_pltfr_remove,
+       .remove_new     = stmmac_pltfr_remove,
        .driver         = {
                .name   = "ingenic-mac",
                .pm             = pm_ptr(&ingenic_mac_pm_ops),
 
        return ret;
 }
 
-static int intel_eth_plat_remove(struct platform_device *pdev)
+static void intel_eth_plat_remove(struct platform_device *pdev)
 {
        struct intel_dwmac *dwmac = get_stmmac_bsp_priv(&pdev->dev);
-       int ret;
 
-       ret = stmmac_pltfr_remove(pdev);
+       stmmac_pltfr_remove(pdev);
        clk_disable_unprepare(dwmac->tx_clk);
-
-       return ret;
 }
 
 static struct platform_driver intel_eth_plat_driver = {
        .probe  = intel_eth_plat_probe,
-       .remove = intel_eth_plat_remove,
+       .remove_new = intel_eth_plat_remove,
        .driver = {
                .name           = "intel-eth-plat",
                .pm             = &stmmac_pltfr_pm_ops,
 
 
 static struct platform_driver ipq806x_gmac_dwmac_driver = {
        .probe = ipq806x_gmac_probe,
-       .remove = stmmac_pltfr_remove,
+       .remove_new = stmmac_pltfr_remove,
        .driver = {
                .name           = "ipq806x-gmac-dwmac",
                .pm             = &stmmac_pltfr_pm_ops,
 
 
 static struct platform_driver lpc18xx_dwmac_driver = {
        .probe  = lpc18xx_dwmac_probe,
-       .remove = stmmac_pltfr_remove,
+       .remove_new = stmmac_pltfr_remove,
        .driver = {
                .name           = "lpc18xx-dwmac",
                .pm             = &stmmac_pltfr_pm_ops,
 
        return ret;
 }
 
-static int mediatek_dwmac_remove(struct platform_device *pdev)
+static void mediatek_dwmac_remove(struct platform_device *pdev)
 {
        struct mediatek_dwmac_plat_data *priv_plat = get_stmmac_bsp_priv(&pdev->dev);
-       int ret;
 
-       ret = stmmac_pltfr_remove(pdev);
+       stmmac_pltfr_remove(pdev);
        mediatek_dwmac_clks_config(priv_plat, false);
-
-       return ret;
 }
 
 static const struct of_device_id mediatek_dwmac_match[] = {
 
 static struct platform_driver mediatek_dwmac_driver = {
        .probe  = mediatek_dwmac_probe,
-       .remove = mediatek_dwmac_remove,
+       .remove_new = mediatek_dwmac_remove,
        .driver = {
                .name           = "dwmac-mediatek",
                .pm             = &stmmac_pltfr_pm_ops,
 
 
 static struct platform_driver meson6_dwmac_driver = {
        .probe  = meson6_dwmac_probe,
-       .remove = stmmac_pltfr_remove,
+       .remove_new = stmmac_pltfr_remove,
        .driver = {
                .name           = "meson6-dwmac",
                .pm             = &stmmac_pltfr_pm_ops,
 
 
 static struct platform_driver meson8b_dwmac_driver = {
        .probe  = meson8b_dwmac_probe,
-       .remove = stmmac_pltfr_remove,
+       .remove_new = stmmac_pltfr_remove,
        .driver = {
                .name           = "meson8b-dwmac",
                .pm             = &stmmac_pltfr_pm_ops,
 
 
 static struct platform_driver oxnas_dwmac_driver = {
        .probe  = oxnas_dwmac_probe,
-       .remove = stmmac_pltfr_remove,
+       .remove_new = stmmac_pltfr_remove,
        .driver = {
                .name           = "oxnas-dwmac",
                .pm             = &stmmac_pltfr_pm_ops,
 
 static int qcom_ethqos_remove(struct platform_device *pdev)
 {
        struct qcom_ethqos *ethqos;
-       int ret;
 
        ethqos = get_stmmac_bsp_priv(&pdev->dev);
        if (!ethqos)
                return -ENODEV;
 
-       ret = stmmac_pltfr_remove(pdev);
+       stmmac_pltfr_remove(pdev);
        ethqos_clks_config(ethqos, false);
 
-       return ret;
+       return 0;
 }
 
 static const struct of_device_id qcom_ethqos_match[] = {
 
 
 static struct platform_driver socfpga_dwmac_driver = {
        .probe  = socfpga_dwmac_probe,
-       .remove = stmmac_pltfr_remove,
+       .remove_new = stmmac_pltfr_remove,
        .driver = {
                .name           = "socfpga-dwmac",
                .pm             = &socfpga_dwmac_pm_ops,
 
 
 static struct platform_driver starfive_dwmac_driver = {
        .probe  = starfive_dwmac_probe,
-       .remove = stmmac_pltfr_remove,
+       .remove_new = stmmac_pltfr_remove,
        .driver = {
                .name = "starfive-dwmac",
                .pm = &stmmac_pltfr_pm_ops,
 
 
 static struct platform_driver sun7i_dwmac_driver = {
        .probe  = sun7i_gmac_probe,
-       .remove = stmmac_pltfr_remove,
+       .remove_new = stmmac_pltfr_remove,
        .driver = {
                .name           = "sun7i-dwmac",
                .pm             = &stmmac_pltfr_pm_ops,
 
        struct stmmac_priv *priv = netdev_priv(ndev);
        int err;
 
-       err = stmmac_pltfr_remove(pdev);
-       if (err < 0)
-               dev_err(&pdev->dev, "failed to remove platform: %d\n", err);
+       stmmac_pltfr_remove(pdev);
 
        err = visconti_eth_clock_remove(pdev);
        if (err < 0)
 
  * Description: this function calls the main to free the net resources
  * and calls the platforms hook and release the resources (e.g. mem).
  */
-int stmmac_pltfr_remove(struct platform_device *pdev)
+void stmmac_pltfr_remove(struct platform_device *pdev)
 {
        struct net_device *ndev = platform_get_drvdata(pdev);
        struct stmmac_priv *priv = netdev_priv(ndev);
                plat->exit(pdev, plat->bsp_priv);
 
        stmmac_remove_config_dt(pdev, plat);
-
-       return 0;
 }
 EXPORT_SYMBOL_GPL(stmmac_pltfr_remove);
 
 
 int stmmac_get_platform_resources(struct platform_device *pdev,
                                  struct stmmac_resources *stmmac_res);
 
-int stmmac_pltfr_remove(struct platform_device *pdev);
+void stmmac_pltfr_remove(struct platform_device *pdev);
 extern const struct dev_pm_ops stmmac_pltfr_pm_ops;
 
 static inline void *get_stmmac_bsp_priv(struct device *dev)