summaryrefslogtreecommitdiffstats
path: root/sys/kern/uipc_mbuf.c
diff options
context:
space:
mode:
authordg <dg@FreeBSD.org>1998-07-27 03:59:48 +0000
committerdg <dg@FreeBSD.org>1998-07-27 03:59:48 +0000
commit2b482f824aacc32f6d6f34fbf426d066464bda5f (patch)
tree25eecb60e0dd2174608cdb3917385c78496af175 /sys/kern/uipc_mbuf.c
parentbe85829abc29955fefb5e3d02795b8ace7970f22 (diff)
downloadFreeBSD-src-2b482f824aacc32f6d6f34fbf426d066464bda5f.zip
FreeBSD-src-2b482f824aacc32f6d6f34fbf426d066464bda5f.tar.gz
Only call m_reclaim() if M_WAIT since calling it from an interrupt can
cause problems. PR: 7403
Diffstat (limited to 'sys/kern/uipc_mbuf.c')
-rw-r--r--sys/kern/uipc_mbuf.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c
index 8388952..09ddd23 100644
--- a/sys/kern/uipc_mbuf.c
+++ b/sys/kern/uipc_mbuf.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)uipc_mbuf.c 8.2 (Berkeley) 1/4/94
- * $Id: uipc_mbuf.c,v 1.35 1998/06/05 21:41:48 dg Exp $
+ * $Id: uipc_mbuf.c,v 1.36 1998/07/03 08:36:48 phk Exp $
*/
#include <sys/param.h>
@@ -251,7 +251,11 @@ m_retry(i, t)
{
register struct mbuf *m;
- m_reclaim();
+ /*
+ * Must only do the reclaim if not in an interrupt context.
+ */
+ if (i == M_WAIT)
+ m_reclaim();
#define m_retry(i, t) (struct mbuf *)0
MGET(m, i, t);
#undef m_retry
@@ -275,7 +279,11 @@ m_retryhdr(i, t)
{
register struct mbuf *m;
- m_reclaim();
+ /*
+ * Must only do the reclaim if not in an interrupt context.
+ */
+ if (i == M_WAIT)
+ m_reclaim();
#define m_retryhdr(i, t) (struct mbuf *)0
MGETHDR(m, i, t);
#undef m_retryhdr
OpenPOWER on IntegriCloud