diff --git a/sys/netinet/udp_usrreq.c b/sys/netinet/udp_usrreq.c index 77bf95a..69c8907 100644 --- a/sys/netinet/udp_usrreq.c +++ b/sys/netinet/udp_usrreq.c @@ -86,6 +86,8 @@ #include #include +#include + #include #include @@ -852,10 +854,12 @@ udp_output(struct inpcb *inp, struct mbuf *m, struct sockaddr *dstaddr, ((struct ip *)ui)->ip_tos = inp->inp_ip_tos; /* XXX */ udpstat.udps_opackets++; + get_mplock(); error = ip_output(m, inp->inp_options, &inp->inp_route, (inp->inp_socket->so_options & (SO_DONTROUTE | SO_BROADCAST)) | IP_DEBUGROUTE, inp->inp_moptions, inp); + rel_mplock(); /* * If this is the first data gram sent on an unbound and unconnected