On Tue, 22 Apr 2008, Rafael J. Wysocki wrote: > > There is a bug in device_add() that IMO can be fixed this way: Ok, looks fine. Greg? > Index: linux-2.6/drivers/base/core.c > =================================================================== > --- linux-2.6.orig/drivers/base/core.c > +++ linux-2.6/drivers/base/core.c > @@ -820,11 +820,11 @@ int device_add(struct device *dev) > error = bus_add_device(dev); > if (error) > goto BusError; > + bus_attach_device(dev); > error = device_pm_add(dev); > if (error) > goto PMError; > kobject_uevent(&dev->kobj, KOBJ_ADD); > - bus_attach_device(dev); > if (parent) > klist_add_tail(&dev->knode_parent, &parent->klist_children); > > The problem is that bus_remove_device() assumes bus_attach_device() to have > run, AFAICS. As to the other issue: > > So I would suggest reverting that commit, or at least just making it a > > warning (while still registering the device). > > Are drivers supposed to register children of suspended devices? That doesn't > make much sense IMO ... Well, that's why I think the warning itself makes sense - and then we can decide whether it makes sense for that particular case or not. Clearly it happens (since it triggered), now we need to figure out _why_ it happened. But I don't think debugging messages should change behaviour. Linus _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm