On Thu, Dec 20, 2018 at 11:23 AM Andrzej Hajda <a.ha...@samsung.com> wrote: > > /sys/kernel/debug/devices_deferred property contains list of deferred devices. > This list does not contain reason why the driver deferred probe, the patch > improves it. > The natural place to set the reason is probe_err function introduced recently, > ie. if probe_err will be called with -EPROBE_DEFER instead of printk the > message > will be attached to deferred device and printed when user read > devices_deferred > property. > > Signed-off-by: Andrzej Hajda <a.ha...@samsung.com> > Reviewed-by: Mark Brown <broo...@kernel.org> > Reviewed-by: Javier Martinez Canillas <javi...@redhat.com> > Reviewed-by: Andy Shevchenko <andy.shevche...@gmail.com> > --- > v4: > - removed NULL check before kfree, > - coding style tweaking. > v3: > - adjusted deferred_devs_show, to accept newline ended messages, > - changed conditonal check to positive, > - added R-b by Andy. > v2: > - changed __deferred_probe_set_msg args - like in __dev_printk, fits better, > - use kasprintf instead of bunch of code, > - keep consistent format of devices_deferred lines, > - added R-Bs (again I hope changes above are not against it). > --- > --- > drivers/base/base.h | 3 +++ > drivers/base/core.c | 9 +++++---- > drivers/base/dd.c | 21 ++++++++++++++++++++- > 3 files changed, 28 insertions(+), 5 deletions(-) > > diff --git a/drivers/base/base.h b/drivers/base/base.h > index 7a419a7a6235..effbd5e7f9f1 100644 > --- a/drivers/base/base.h > +++ b/drivers/base/base.h > @@ -75,6 +75,7 @@ struct device_private { > struct klist_node knode_driver; > struct klist_node knode_bus; > struct list_head deferred_probe; > + char *deferred_probe_msg;
Many drivers will never use this, so is the memory overhead justified? > struct device *device; > };