return ret;
 }
 
-static void __exit dec_lance_remove(struct device *bdev)
-{
-       struct net_device *dev = dev_get_drvdata(bdev);
-       resource_size_t start, len;
-
-       unregister_netdev(dev);
-       start = to_tc_dev(bdev)->resource.start;
-       len = to_tc_dev(bdev)->resource.end - start + 1;
-       release_mem_region(start, len);
-       free_netdev(dev);
-}
-
 /* Find all the lance cards on the system and initialize them */
 static int __init dec_lance_platform_probe(void)
 {
 
 #ifdef CONFIG_TC
 static int dec_lance_tc_probe(struct device *dev);
-static int __exit dec_lance_tc_remove(struct device *dev);
+static int dec_lance_tc_remove(struct device *dev);
 
 static const struct tc_device_id dec_lance_tc_table[] = {
        { "DEC     ", "PMAD-AA " },
                .name   = "declance",
                .bus    = &tc_bus_type,
                .probe  = dec_lance_tc_probe,
-               .remove = __exit_p(dec_lance_tc_remove),
+               .remove = dec_lance_tc_remove,
        },
 };
 
         return status;
 }
 
-static int __exit dec_lance_tc_remove(struct device *dev)
+static void dec_lance_remove(struct device *bdev)
+{
+       struct net_device *dev = dev_get_drvdata(bdev);
+       resource_size_t start, len;
+
+       unregister_netdev(dev);
+       start = to_tc_dev(bdev)->resource.start;
+       len = to_tc_dev(bdev)->resource.end - start + 1;
+       release_mem_region(start, len);
+       free_netdev(dev);
+}
+
+static int dec_lance_tc_remove(struct device *dev)
 {
         put_device(dev);
         dec_lance_remove(dev);
 
        return err;
 }
 
-static int __exit sbmac_remove(struct platform_device *pldev)
+static int sbmac_remove(struct platform_device *pldev)
 {
        struct net_device *dev = platform_get_drvdata(pldev);
        struct sbmac_softc *sc = netdev_priv(dev);
 
 static struct platform_driver sbmac_driver = {
        .probe = sbmac_probe,
-       .remove = __exit_p(sbmac_remove),
+       .remove = sbmac_remove,
        .driver = {
                .name = sbmac_string,
        },
 
        return err;
 }
 
-static int __exit ftgmac100_remove(struct platform_device *pdev)
+static int ftgmac100_remove(struct platform_device *pdev)
 {
        struct net_device *netdev;
        struct ftgmac100 *priv;
 
 static struct platform_driver ftgmac100_driver = {
        .probe  = ftgmac100_probe,
-       .remove = __exit_p(ftgmac100_remove),
+       .remove = ftgmac100_remove,
        .driver = {
                .name           = DRV_NAME,
                .of_match_table = ftgmac100_of_match,
 
        return err;
 }
 
-static int __exit ftmac100_remove(struct platform_device *pdev)
+static int ftmac100_remove(struct platform_device *pdev)
 {
        struct net_device *netdev;
        struct ftmac100 *priv;
 
 static struct platform_driver ftmac100_driver = {
        .probe          = ftmac100_probe,
-       .remove         = __exit_p(ftmac100_remove),
+       .remove         = ftmac100_remove,
        .driver         = {
                .name   = DRV_NAME,
        },
 
        return err;
 }
 
-static int __exit sgiseeq_remove(struct platform_device *pdev)
+static int sgiseeq_remove(struct platform_device *pdev)
 {
        struct net_device *dev = platform_get_drvdata(pdev);
        struct sgiseeq_private *sp = netdev_priv(dev);
 
 static struct platform_driver sgiseeq_driver = {
        .probe  = sgiseeq_probe,
-       .remove = __exit_p(sgiseeq_remove),
+       .remove = sgiseeq_remove,
        .driver = {
                .name   = "sgiseeq",
        }
 
        return 0;
 }
 
-static int __exit meth_remove(struct platform_device *pdev)
+static int meth_remove(struct platform_device *pdev)
 {
        struct net_device *dev = platform_get_drvdata(pdev);
 
 
 static struct platform_driver meth_driver = {
        .probe  = meth_probe,
-       .remove = __exit_p(meth_remove),
+       .remove = meth_remove,
        .driver = {
                .name   = "meth",
        }