ipfw initialization: SI_ORDER_ANY -> SI_ORDER_MIDDLE?
Paolo Pisati
piso at FreeBSD.org
Sun Mar 2 07:13:31 PST 2008
Hi,
i just found out that depending on a KLD doesn't imply any
initialization order, thus depending on a lock initialized in the ipfw
init path is _really_ a bad idea from another KLD init path (see
ip_fw_nat.c::ipfw_nat_init()).
A fix would be to move ipfw init priority from SI_ORDER_ANY to
SI_ORDER_MIDDLE, but i guess there are side effects that i'm
unaware in this modification...
On the other hand, if we keep ipfw at SI_ORDER_ANY, i don't know how
to build stuff that relies on it without opening race conditions:
see ip_fw_nat.c::flush_nat_ptrs() called in rule deletion and
rule configuration paths.
bye,
P.
ps yes, next time i'll better read the MODULE_DEPEND man page...
More information about the freebsd-net
mailing list