diff options
Diffstat (limited to 'freebsd/sys/netinet/ip_options.c')
-rw-r--r-- | freebsd/sys/netinet/ip_options.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/freebsd/sys/netinet/ip_options.c b/freebsd/sys/netinet/ip_options.c index c90077ea..fbbe96d3 100644 --- a/freebsd/sys/netinet/ip_options.c +++ b/freebsd/sys/netinet/ip_options.c @@ -111,6 +111,7 @@ ip_dooptions(struct mbuf *m, int pass) uint32_t ntime; struct nhop4_extended nh_ext; struct sockaddr_in ipaddr = { sizeof(ipaddr), AF_INET }; + struct epoch_tracker et; /* Ignore or reject packets with IP options. */ if (V_ip_doopts == 0) @@ -121,7 +122,7 @@ ip_dooptions(struct mbuf *m, int pass) goto bad_unlocked; } - NET_EPOCH_ENTER(); + NET_EPOCH_ENTER(et); dst = ip->ip_dst; cp = (u_char *)(ip + 1); cnt = (ip->ip_hl << 2) - sizeof (struct ip); @@ -227,7 +228,7 @@ dropit: #endif IPSTAT_INC(ips_cantforward); m_freem(m); - NET_EPOCH_EXIT(); + NET_EPOCH_EXIT(et); return (1); } } @@ -382,14 +383,14 @@ dropit: cp[IPOPT_OFFSET] += sizeof(uint32_t); } } - NET_EPOCH_EXIT(); + NET_EPOCH_EXIT(et); if (forward && V_ipforwarding) { ip_forward(m, 1); return (1); } return (0); bad: - NET_EPOCH_EXIT(); + NET_EPOCH_EXIT(et); bad_unlocked: icmp_error(m, type, code, 0, 0); IPSTAT_INC(ips_badoptions); |