Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/netinet/ip_input.c,v rcsdiff: /ftp/cvs/cvsroot/src/sys/netinet/ip_input.c,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.131 retrieving revision 1.132 diff -u -p -r1.131 -r1.132 --- src/sys/netinet/ip_input.c 2001/03/27 02:24:38 1.131 +++ src/sys/netinet/ip_input.c 2001/04/13 23:30:22 1.132 @@ -1,4 +1,4 @@ -/* $NetBSD: ip_input.c,v 1.131 2001/03/27 02:24:38 itojun Exp $ */ +/* $NetBSD: ip_input.c,v 1.132 2001/04/13 23:30:22 thorpej Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -222,7 +222,11 @@ ipq_lock_try() { int s; - s = splimp(); + /* + * Use splvm() -- we're bloking things that would cause + * mbuf allocation. + */ + s = splvm(); if (ipq_locked) { splx(s); return (0); @@ -237,7 +241,7 @@ ipq_unlock() { int s; - s = splimp(); + s = splvm(); ipq_locked = 0; splx(s); } @@ -343,7 +347,7 @@ ipintr() struct mbuf *m; while (1) { - s = splimp(); + s = splnet(); IF_DEQUEUE(&ipintrq, m); splx(s); if (m == 0)