From 4d3dfd450a42dd28864f910f526685f4784f4ddf Mon Sep 17 00:00:00 2001 From: Mikolaj Golub Date: Fri, 13 Sep 2013 18:45:10 +0000 Subject: [PATCH] Unregister inet/inet6 pfil hooks on vnet destroy. Discussed with: andre Approved by: re (rodrigc) --- sys/netinet/ip_input.c | 5 +++++ sys/netinet6/ip6_input.c | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c index 707d2be2b2a2..c265d02b4e28 100644 --- a/sys/netinet/ip_input.c +++ b/sys/netinet/ip_input.c @@ -363,6 +363,11 @@ ip_init(void) void ip_destroy(void) { + int i; + + if ((i = pfil_head_unregister(&V_inet_pfil_hook)) != 0) + printf("%s: WARNING: unable to unregister pfil hook, " + "error %d\n", __func__, i); /* Cleanup in_ifaddr hash table; should be empty. */ hashdestroy(V_in_ifaddrhashtbl, M_IFADDR, V_in_ifaddrhmask); diff --git a/sys/netinet6/ip6_input.c b/sys/netinet6/ip6_input.c index 31f048f1886e..a94d5c22c509 100644 --- a/sys/netinet6/ip6_input.c +++ b/sys/netinet6/ip6_input.c @@ -307,7 +307,11 @@ ip6proto_unregister(short ip6proto) void ip6_destroy() { + int i; + if ((i = pfil_head_unregister(&V_inet6_pfil_hook)) != 0) + printf("%s: WARNING: unable to unregister pfil hook, " + "error %d\n", __func__, i); hashdestroy(V_in6_ifaddrhashtbl, M_IFADDR, V_in6_ifaddrhmask); nd6_destroy(); callout_drain(&V_in6_tmpaddrtimer_ch);