diff options
author | dg <dg@FreeBSD.org> | 1998-07-27 03:59:48 +0000 |
---|---|---|
committer | dg <dg@FreeBSD.org> | 1998-07-27 03:59:48 +0000 |
commit | 2b482f824aacc32f6d6f34fbf426d066464bda5f (patch) | |
tree | 25eecb60e0dd2174608cdb3917385c78496af175 /sys | |
parent | be85829abc29955fefb5e3d02795b8ace7970f22 (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/kern/uipc_mbuf.c | 14 |
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 |