device property: Don't overwrite addr when failing in device_get_mac_address
[linux-2.6-microblaze.git] / drivers / base / dd.c
index 2d6df1d..be0eb46 100644 (file)
@@ -304,6 +304,14 @@ static int really_probe(struct device *dev, struct device_driver *drv)
                        goto probe_failed;
        }
 
+       /*
+        * Ensure devices are listed in devices_kset in correct order
+        * It's important to move Dev to the end of devices_kset before
+        * calling .probe, because it could be recursive and parent Dev
+        * should always go first
+        */
+       devices_kset_move_last(dev);
+
        if (dev->bus->probe) {
                ret = dev->bus->probe(dev);
                if (ret)