summaryrefslogtreecommitdiffstats
path: root/sys/net
diff options
context:
space:
mode:
authorrodrigc <rodrigc@FreeBSD.org>2013-12-04 07:55:49 +0000
committerrodrigc <rodrigc@FreeBSD.org>2013-12-04 07:55:49 +0000
commita19b1d3a5826fe9fb069c28583b0d82ad975d928 (patch)
tree39f8baa37ab7258af44bf74ee510ed5b681b8cc5 /sys/net
parent85a1f610563bb475e4e2eeb57a8450060df9564c (diff)
downloadFreeBSD-src-a19b1d3a5826fe9fb069c28583b0d82ad975d928.zip
FreeBSD-src-a19b1d3a5826fe9fb069c28583b0d82ad975d928.tar.gz
MFC 258591
In vnet_route_uninit(), free some memory that is allocated in vnet_route_init(). To reproduce the problem: (1) Take a GENERIC kernel config, and add options for: VIMAGE, WITNESS, INVARIANTS. (2) Run this command in a loop: jail -l -u root -c path=/ name=foo persist vnet && jexec foo ifconfig lo0 127.0.0.1/8 && jail -r foo see: http://lists.freebsd.org/pipermail/freebsd-current/2010-November/021280.html http://lists.freebsd.org/pipermail/freebsd-current/2010-November/021291.html This doesn't eliminate all the "Freed UMA keg was not empty" warning messages on the console, but it helps. Approved by: re (gjb)
Diffstat (limited to 'sys/net')
-rw-r--r--sys/net/route.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/net/route.c b/sys/net/route.c
index 9b9835f..20fe181 100644
--- a/sys/net/route.c
+++ b/sys/net/route.c
@@ -262,6 +262,9 @@ vnet_route_uninit(const void *unused __unused)
dom->dom_rtdetach((void **)rnh, dom->dom_rtoffset);
}
}
+
+ free(V_rt_tables, M_RTABLE);
+ uma_zdestroy(V_rtzone);
}
VNET_SYSUNINIT(vnet_route_uninit, SI_SUB_PROTO_DOMAIN, SI_ORDER_THIRD,
vnet_route_uninit, 0);
OpenPOWER on IntegriCloud