return err;
 }
 
-static int ocelot_ext_remove(struct platform_device *pdev)
+static void ocelot_ext_remove(struct platform_device *pdev)
 {
        struct felix *felix = dev_get_drvdata(&pdev->dev);
 
        if (!felix)
-               return 0;
+               return;
 
        dsa_unregister_switch(felix->ds);
 
        kfree(felix->ds);
        kfree(felix);
-
-       return 0;
 }
 
 static void ocelot_ext_shutdown(struct platform_device *pdev)
                .of_match_table = ocelot_ext_switch_of_match,
        },
        .probe = ocelot_ext_probe,
-       .remove = ocelot_ext_remove,
+       .remove_new = ocelot_ext_remove,
        .shutdown = ocelot_ext_shutdown,
 };
 module_platform_driver(ocelot_ext_switch_driver);
 
        return err;
 }
 
-static int seville_remove(struct platform_device *pdev)
+static void seville_remove(struct platform_device *pdev)
 {
        struct felix *felix = platform_get_drvdata(pdev);
 
        if (!felix)
-               return 0;
+               return;
 
        dsa_unregister_switch(felix->ds);
 
        kfree(felix->ds);
        kfree(felix);
-
-       return 0;
 }
 
 static void seville_shutdown(struct platform_device *pdev)
 
 static struct platform_driver seville_vsc9953_driver = {
        .probe          = seville_probe,
-       .remove         = seville_remove,
+       .remove_new     = seville_remove,
        .shutdown       = seville_shutdown,
        .driver = {
                .name           = "mscc_seville",