* Stephen Boyd <swboyd@xxxxxxxxxxxx> [190814 07:09]: > Quoting Tony Lindgren (2019-08-13 23:38:03) > > Hi all, > > > > Looks like commit 986845e747af ("PM / wakeup: Show wakeup sources stats > > in sysfs") has caused a regression in Linux next where I can now get > > some errors like this during the boot: > > > > kobject_add_internal failed for wakeup10 (error: -2 parent: usb) > > > > Any ideas why this might be happening? Maybe some deferred probe > > related issue? > > > > Yeah! Take a look at this thread[1] and please test out patches I'm > throwing out there like a total cowboy(d). > > [1] https://lkml.kernel.org/r/1565731976.8572.16.camel@xxxxxx Oh OK thanks, looks like I'm a bit behind then. My test case turned out to be caused by device_init_wakeup() called before device_add() for power_supply in case that helps. In that case create_dir() will fail for kobject_add_internal(). Doing something like below fixes the issue, but seems like we probably have other similar issues as well. Adding Sebastian to Cc in case this might be a real problem despite the other issues. Regards, Tony 8< ----------------------- diff --git a/drivers/power/supply/power_supply_core.c b/drivers/power/supply/power_supply_core.c --- a/drivers/power/supply/power_supply_core.c +++ b/drivers/power/supply/power_supply_core.c @@ -1051,14 +1051,14 @@ __power_supply_register(struct device *parent, } spin_lock_init(&psy->changed_lock); - rc = device_init_wakeup(dev, ws); - if (rc) - goto wakeup_init_failed; - rc = device_add(dev); if (rc) goto device_add_failed; + rc = device_init_wakeup(dev, ws); + if (rc) + goto wakeup_init_failed; + rc = psy_register_thermal(psy); if (rc) goto register_thermal_failed; @@ -1100,9 +1100,9 @@ __power_supply_register(struct device *parent, register_cooler_failed: psy_unregister_thermal(psy); register_thermal_failed: +wakeup_init_failed: device_del(dev); device_add_failed: -wakeup_init_failed: check_supplies_failed: dev_set_name_failed: put_device(dev);