diff options
author | 2013-07-31 15:41:51 +0000 | |
---|---|---|
committer | 2013-07-31 15:41:51 +0000 | |
commit | 178fea0169fba843ff25128d91cdf240ac6d302a (patch) | |
tree | ee87bc57e956fdb7538c2ca104857d9691d9d086 /sys/netinet/tcp_input.c | |
parent | Remove the sysmerge(8) glue from the installer -- it's never been used (diff) | |
download | wireguard-openbsd-178fea0169fba843ff25128d91cdf240ac6d302a.tar.xz wireguard-openbsd-178fea0169fba843ff25128d91cdf240ac6d302a.zip |
Move bridge_broadcast and subsequently all IPsec SPD lookup code out
of the IPL_NET. pf_test should be no longer called under IPL_NET as
well. The problem became evident after the related issue was brought
up by David Hill <dhill at mindcry ! org>.
With input from and OK mpi. Tested by David and me.
Diffstat (limited to 'sys/netinet/tcp_input.c')
-rw-r--r-- | sys/netinet/tcp_input.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index 4e39e7f1f6f..734ae46c916 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tcp_input.c,v 1.265 2013/07/01 10:53:52 bluhm Exp $ */ +/* $OpenBSD: tcp_input.c,v 1.266 2013/07/31 15:41:52 mikeb Exp $ */ /* $NetBSD: tcp_input.c,v 1.23 1996/02/13 23:43:44 christos Exp $ */ /* @@ -378,7 +378,7 @@ tcp_input(struct mbuf *m, ...) struct m_tag *mtag; struct tdb_ident *tdbi; struct tdb *tdb; - int error, s; + int error; #endif /* IPSEC */ int af; #ifdef TCP_ECN @@ -886,7 +886,6 @@ findpcb: #ifdef IPSEC /* Find most recent IPsec tag */ mtag = m_tag_find(m, PACKET_TAG_IPSEC_IN_DONE, NULL); - s = splnet(); if (mtag != NULL) { tdbi = (struct tdb_ident *)(mtag + 1); tdb = gettdb(tdbi->rdomain, tdbi->spi, @@ -897,7 +896,6 @@ findpcb: tdb, inp, 0); if (error) { tcpstat.tcps_rcvnosec++; - splx(s); goto drop; } @@ -909,7 +907,6 @@ findpcb: inp->inp_ipo = ipsec_add_policy(inp, af, IPSP_DIRECTION_OUT); if (inp->inp_ipo == NULL) { - splx(s); goto drop; } } @@ -936,7 +933,6 @@ findpcb: inp->inp_tdb_in = NULL; } } - splx(s); #endif /* IPSEC */ /* @@ -969,7 +965,7 @@ findpcb: /* subtract out the tcp timestamp modulator */ opti.ts_ecr -= tp->ts_modulate; - + /* make sure ts_ecr is sensible */ rtt_test = tcp_now - opti.ts_ecr; if (rtt_test < 0 || rtt_test > TCP_RTT_MAX) |