return err;
 }
 
-static int octeon_mdiobus_remove(struct platform_device *pdev)
+static void octeon_mdiobus_remove(struct platform_device *pdev)
 {
        struct cavium_mdiobus *bus;
        union cvmx_smix_en smi_en;
        mdiobus_unregister(bus->mii_bus);
        smi_en.u64 = 0;
        oct_mdio_writeq(smi_en.u64, bus->register_base + SMI_EN);
-       return 0;
 }
 
 static const struct of_device_id octeon_mdiobus_match[] = {
                .of_match_table = octeon_mdiobus_match,
        },
        .probe          = octeon_mdiobus_probe,
-       .remove         = octeon_mdiobus_remove,
+       .remove_new     = octeon_mdiobus_remove,
 };
 
 module_platform_driver(octeon_mdiobus_driver);