static DEFINE_MUTEX(dpm_list_mtx);
 static pm_message_t pm_transition;
 
-/*
- * Set once the preparation of devices for a PM transition has started, reset
- * before starting to resume devices.  Protected by dpm_list_mtx.
- */
-static bool transition_started;
-
 static int async_error;
 
 /**
                 dev->bus ? dev->bus->name : "No Bus",
                 kobject_name(&dev->kobj));
        mutex_lock(&dpm_list_mtx);
-       if (dev->parent) {
-               if (dev->parent->power.in_suspend)
-                       dev_warn(dev, "parent %s should not be sleeping\n",
-                                dev_name(dev->parent));
-       } else if (transition_started) {
-               /*
-                * We refuse to register parentless devices while a PM
-                * transition is in progress in order to avoid leaving them
-                * unhandled down the road
-                */
-               dev_WARN(dev, "Parentless device registered during a PM transaction\n");
-       }
-
+       if (dev->parent && dev->parent->power.in_suspend)
+               dev_warn(dev, "parent %s should not be sleeping\n",
+                       dev_name(dev->parent));
        list_add_tail(&dev->power.entry, &dpm_list);
        mutex_unlock(&dpm_list_mtx);
 }
        ktime_t starttime = ktime_get();
 
        mutex_lock(&dpm_list_mtx);
-       transition_started = false;
        while (!list_empty(&dpm_noirq_list)) {
                struct device *dev = to_device(dpm_noirq_list.next);
                int error;
 
        INIT_LIST_HEAD(&list);
        mutex_lock(&dpm_list_mtx);
-       transition_started = false;
        while (!list_empty(&dpm_prepared_list)) {
                struct device *dev = to_device(dpm_prepared_list.prev);
 
        int error = 0;
 
        mutex_lock(&dpm_list_mtx);
-       transition_started = true;
        while (!list_empty(&dpm_list)) {
                struct device *dev = to_device(dpm_list.next);