Hi Finn, (responding immediately to patches doing non-kosher things ;-)
On Mon, May 7, 2018 at 1:57 AM, Finn Thain <[email protected]> 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. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected] 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

