diff options
author | trociny <trociny@FreeBSD.org> | 2013-08-24 11:59:51 +0000 |
---|---|---|
committer | trociny <trociny@FreeBSD.org> | 2013-08-24 11:59:51 +0000 |
commit | 583ac348099c237361e8e965845ae09e8bb4255f (patch) | |
tree | d628f5d99b3cb1361e93964bb24345f2650ab5c7 /sys/kern/subr_taskqueue.c | |
parent | 25d6b936a0bde081d420f4187dfdd4111f5ded48 (diff) | |
download | FreeBSD-src-583ac348099c237361e8e965845ae09e8bb4255f.zip FreeBSD-src-583ac348099c237361e8e965845ae09e8bb4255f.tar.gz |
Make ipfw nat init/unint work correctly for VIMAGE:
* Do per vnet instance cleanup (previously it was only for vnet0 on
module unload, and led to libalias leaks and possible panics due to
stale pointer dereferences).
* Instead of protecting ipfw hooks registering/deregistering by only
vnet0 lock (which does not prevent pointers access from another
vnets), introduce per vnet ipfw_nat_loaded variable. The variable is
set after hooks are registered and unset before they are deregistered.
* Devirtualize ifaddr_event_tag as we run only one event handler for
all vnets.
* It is supposed that ifaddr_change event handler is called in the
interface vnet context, so add an assertion.
Reviewed by: zec
MFC after: 2 weeks
Diffstat (limited to 'sys/kern/subr_taskqueue.c')
0 files changed, 0 insertions, 0 deletions