static int ehea_probe_adapter(struct platform_device *dev);
 
-static int ehea_remove(struct platform_device *dev);
+static void ehea_remove(struct platform_device *dev);
 
 static const struct of_device_id ehea_module_device_table[] = {
        {
                .of_match_table = ehea_device_table,
        },
        .probe = ehea_probe_adapter,
-       .remove = ehea_remove,
+       .remove_new = ehea_remove,
 };
 
 void ehea_dump(void *adr, int len, char *msg)
        return ret;
 }
 
-static int ehea_remove(struct platform_device *dev)
+static void ehea_remove(struct platform_device *dev)
 {
        struct ehea_adapter *adapter = platform_get_drvdata(dev);
        int i;
        list_del(&adapter->list);
 
        ehea_update_firmware_handles();
-
-       return 0;
 }
 
 static int check_module_parm(void)
 
        return err;
 }
 
-static int emac_remove(struct platform_device *ofdev)
+static void emac_remove(struct platform_device *ofdev)
 {
        struct emac_instance *dev = platform_get_drvdata(ofdev);
 
                irq_dispose_mapping(dev->emac_irq);
 
        free_netdev(dev->ndev);
-
-       return 0;
 }
 
 /* XXX Features in here should be replaced by properties... */
                .of_match_table = emac_match,
        },
        .probe = emac_probe,
-       .remove = emac_remove,
+       .remove_new = emac_remove,
 };
 
 static void __init emac_make_bootlist(void)
 
        return err;
 }
 
-static int mal_remove(struct platform_device *ofdev)
+static void mal_remove(struct platform_device *ofdev)
 {
        struct mal_instance *mal = platform_get_drvdata(ofdev);
 
                           NUM_RX_BUFF * mal->num_rx_chans), mal->bd_virt,
                          mal->bd_dma);
        kfree(mal);
-
-       return 0;
 }
 
 static const struct of_device_id mal_platform_match[] =
                .of_match_table = mal_platform_match,
        },
        .probe = mal_probe,
-       .remove = mal_remove,
+       .remove_new = mal_remove,
 };
 
 int __init mal_init(void)
 
        return rc;
 }
 
-static int rgmii_remove(struct platform_device *ofdev)
+static void rgmii_remove(struct platform_device *ofdev)
 {
        struct rgmii_instance *dev = platform_get_drvdata(ofdev);
 
 
        iounmap(dev->base);
        kfree(dev);
-
-       return 0;
 }
 
 static const struct of_device_id rgmii_match[] =
                .of_match_table = rgmii_match,
        },
        .probe = rgmii_probe,
-       .remove = rgmii_remove,
+       .remove_new = rgmii_remove,
 };
 
 int __init rgmii_init(void)
 
        return rc;
 }
 
-static int tah_remove(struct platform_device *ofdev)
+static void tah_remove(struct platform_device *ofdev)
 {
        struct tah_instance *dev = platform_get_drvdata(ofdev);
 
 
        iounmap(dev->base);
        kfree(dev);
-
-       return 0;
 }
 
 static const struct of_device_id tah_match[] =
                .of_match_table = tah_match,
        },
        .probe = tah_probe,
-       .remove = tah_remove,
+       .remove_new = tah_remove,
 };
 
 int __init tah_init(void)
 
        return rc;
 }
 
-static int zmii_remove(struct platform_device *ofdev)
+static void zmii_remove(struct platform_device *ofdev)
 {
        struct zmii_instance *dev = platform_get_drvdata(ofdev);
 
 
        iounmap(dev->base);
        kfree(dev);
-
-       return 0;
 }
 
 static const struct of_device_id zmii_match[] =
                .of_match_table = zmii_match,
        },
        .probe = zmii_probe,
-       .remove = zmii_remove,
+       .remove_new = zmii_remove,
 };
 
 int __init zmii_init(void)