Hi Greg, On Mon, May 7, 2018 at 4:45 PM, Greg Kroah-Hartman <gre...@linuxfoundation.org> wrote: > On Mon, May 07, 2018 at 02:53:13PM +0200, Geert Uytterhoeven wrote: >> On Mon, May 7, 2018 at 1:57 AM, Finn Thain <fth...@telegraphics.com.au> >> wrote: >> > On Sun, 6 May 2018, Greg Kroah-Hartman wrote: >> >> > > Why not just have an "bus is registered" flag in your driver >> >> > > register function that refuses to let drivers register with the >> >> > > driver core if it isn't set? >> >> > >> >> > Perhaps that should happen in the core driver_register() function. >> >> > BUG_ON is frowned upon, after all. Would that be acceptable? >> >> >> >> I don't understand what you mean here, perhaps make a patch to show it? >> >> >> > >> > As an alternative to your suggestion (add flag to avoid the BUG_ON): >> > >> > --- a/drivers/base/driver.c >> > +++ b/drivers/base/driver.c >> > @@ -148,7 +148,10 @@ int driver_register(struct device_driver *drv) >> > int ret; >> > struct device_driver *other; >> > >> > - BUG_ON(!drv->bus->p); >> > + if (!drv->bus->p) { >> > + WARN_ONCE(1, "Cannot register driver with invalid bus\n"); >> > + return -EPROBE_DEFER; >> > + } >> > >> > if ((drv->bus->probe && drv->probe) || >> > (drv->bus->remove && drv->remove) || >> > >> > I'm not actually proposing this change; just responding to your question. >> >> The bus_type.p field may be unused by some bus drivers, hence this >> would prevent their drivers from being registered. > > bus_type.p is an internal-to-the-driver-core structure, no bus driver > should ever be touching it. This is a catch to see if someone is using > the driver core incorrectly.
Thanks, I stand corrected. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds