From: Andrew Lunn <and...@lunn.ch> Date: Thu, 12 Sep 2019 15:16:45 +0200
> The DSA core, DSA taggers and DSA drivers all make use of > module_init(). Hence they get initialised at device_initcall() time. > The ordering is non-deterministic. It can be a DSA driver is bound to > a device before the needed tag driver has been initialised, resulting > in the message: > > No tagger for this switch > > Rather than have this be fatal, return -EPROBE_DEFER so that it is > tried again later once all the needed drivers have been loaded. > > Fixes: d3b8c04988ca ("dsa: Add boilerplate helper to register DSA tag driver > modules") > Signed-off-by: Andrew Lunn <and...@lunn.ch> > --- > > I did wonder if we should play with the core and tag drivers and make > them use subsystem_initcall(), but EPROBE_DEFER seems to be the more > preferred solution nowadays. Yes that does indeed seem preferable these days and all of the init types is usually quite fragile. Applied and queued up for v5.2 -stable. Thanks.