frag6_slowtimo: push NET_LOCK into frag6_freef around icmp6_error.
authorcheloha <cheloha@openbsd.org>
Wed, 22 Aug 2018 19:48:48 +0000 (19:48 +0000)
committercheloha <cheloha@openbsd.org>
Wed, 22 Aug 2018 19:48:48 +0000 (19:48 +0000)
commit4d6b2133493e812ec185ccee702bb3595081f825
treea764ffca43da856e7e8f5afef57fd8f0f1df53ef
parentca930e6435c34fa695c49ef5b3c577e2b4547b48
frag6_slowtimo: push NET_LOCK into frag6_freef around icmp6_error.

icmp6_error() still probably needs the NET_LOCK, as the call chain
icmp6_error -> icmp6_reflect -> rt_match -> rt_clone -> rtrequest
is possible.

The fragment discard loop in frag6_slowtimo and the other
cleanup bits in frag6_freef do not require it however.  So
push the lock down into frag6_freef around icmp6_error.

Prompted by mpi.  Discussed with bluhm and kn.  Regress test help
by bluhm.  Additional testing by kn.

ok kn@ visa@ mpi@
sys/netinet6/frag6.c