Mis-use of BUS_PASS_ORDER_MIDDLE

John Baldwin jhb at freebsd.org
Mon Apr 18 18:53:49 UTC 2016


On Monday, April 18, 2016 11:10:12 PM Howard Su wrote:
> I noticed several places there are code like this, especially in some arm
> low level drivers.
> EARLY_DRIVER_MODULE(aw_ccu, simplebus, aw_ccu_driver, aw_ccu_devclass,
>     0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE);
> 
> ​I feel the usage of BUS_PASS_ORDER_MIDDLE is misused. There are another
> macro EARLY_DRIVER_MODULE_ORDERED, which take an additional parameter
> "order". I believe BUS_PASS_ORDER_xxx is used for that parameter.

No, this is actually correct.  The _ORDERED variants actually accept a
SI_ORDER_* value to determine how drivers contained in a single .ko file
are registered (in particular if you have several drivers in a .ko file
you typically want the "top-most" driver to attach last so that all the
other drivers are ready once the actual device is attached).

-- 
John Baldwin


More information about the freebsd-current mailing list