summaryrefslogtreecommitdiffstats
path: root/sys/netinet
diff options
context:
space:
mode:
authordg <dg@FreeBSD.org>1997-12-18 09:13:39 +0000
committerdg <dg@FreeBSD.org>1997-12-18 09:13:39 +0000
commit5b21cc8b37b50e7ff4efd4a9c80496e272b12e25 (patch)
treee2e8c4197fdc69d93f7cf2e73ae5a34df3c571e8 /sys/netinet
parent8a27726113b035c8c304407c1e0ba6e3e96637be (diff)
downloadFreeBSD-src-5b21cc8b37b50e7ff4efd4a9c80496e272b12e25.zip
FreeBSD-src-5b21cc8b37b50e7ff4efd4a9c80496e272b12e25.tar.gz
Call in_pcballoc() at splnet(). As near as I can tell, this won't fix
any instability problems, but it was wrong nonetheless and will be required in an upcoming round of PCB changes.
Diffstat (limited to 'sys/netinet')
-rw-r--r--sys/netinet/ip_divert.c13
-rw-r--r--sys/netinet/raw_ip.c13
2 files changed, 18 insertions, 8 deletions
diff --git a/sys/netinet/ip_divert.c b/sys/netinet/ip_divert.c
index d9ab18d..4e05b4f 100644
--- a/sys/netinet/ip_divert.c
+++ b/sys/netinet/ip_divert.c
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: ip_divert.c,v 1.14 1997/09/13 15:40:55 peter Exp $
+ * $Id: ip_divert.c,v 1.15 1997/09/14 03:10:39 peter Exp $
*/
#include <sys/param.h>
@@ -269,7 +269,7 @@ static int
div_attach(struct socket *so, int proto, struct proc *p)
{
struct inpcb *inp;
- int error;
+ int error, s;
inp = sotoinpcb(so);
if (inp)
@@ -277,8 +277,13 @@ div_attach(struct socket *so, int proto, struct proc *p)
if (p && (error = suser(p->p_ucred, &p->p_acflag)) != 0)
return error;
- if ((error = soreserve(so, div_sendspace, div_recvspace)) ||
- (error = in_pcballoc(so, &divcbinfo, p)))
+ s = splnet();
+ error = in_pcballoc(so, &divcbinfo, p);
+ splx(s);
+ if (error)
+ return error;
+ error = soreserve(so, div_sendspace, div_recvspace);
+ if (error)
return error;
inp = (struct inpcb *)so->so_pcb;
inp->inp_ip_p = proto;
diff --git a/sys/netinet/raw_ip.c b/sys/netinet/raw_ip.c
index 1faba0d..416cda1 100644
--- a/sys/netinet/raw_ip.c
+++ b/sys/netinet/raw_ip.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)raw_ip.c 8.7 (Berkeley) 5/15/95
- * $Id: raw_ip.c,v 1.48 1997/08/16 19:15:37 wollman Exp $
+ * $Id: raw_ip.c,v 1.49 1997/09/14 03:10:40 peter Exp $
*/
#include <sys/param.h>
@@ -391,7 +391,7 @@ static int
rip_attach(struct socket *so, int proto, struct proc *p)
{
struct inpcb *inp;
- int error;
+ int error, s;
inp = sotoinpcb(so);
if (inp)
@@ -399,8 +399,13 @@ rip_attach(struct socket *so, int proto, struct proc *p)
if (p && (error = suser(p->p_ucred, &p->p_acflag)) != 0)
return error;
- if ((error = soreserve(so, rip_sendspace, rip_recvspace)) ||
- (error = in_pcballoc(so, &ripcbinfo, p)))
+ s = splnet();
+ error = in_pcballoc(so, &ripcbinfo, p);
+ splx(s);
+ if (error)
+ return error;
+ error = soreserve(so, rip_sendspace, rip_recvspace);
+ if (error)
return error;
inp = (struct inpcb *)so->so_pcb;
inp->inp_ip_p = proto;
OpenPOWER on IntegriCloud