🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: net.bugs.4bsd
Article #1711

4.3BSD network bug (#3, MCLGET/mbuf.h)

#1711
From: Mike Karels
Date: Thu, 23 Oct 1986 00:17
47 lines
2131 bytes
Index:	sys/h/mbuf.h 4.3BSD FIX

This is the last of a set of 3 bug reports with fixes for the network
in 4.3BSD.  All 4.3 sites should install the modifications described
in these reports.  Although rare, the bug described in this report
may cause unexplained crashes or random failures.

Description:

The macros for addition of page clusters to mbufs were revised in 4.3BSD.
A new macro, MCLGET, is called to add a single page cluster to an mbuf.
If there are no free clusters, the macro calls m_clalloc to attempt
to create a new cluster.  Unfortunately, the MCLGET macro does not run
at high priority, but m_clalloc may only be called from splimp to block
reentrance of the memory allocation routines.  The call to m_clalloc
should be made from MCLALLOC, which does run at high priority.

Fix:

In the file /sys/h/mbuf.h, move the test of mclfree and call to m_clalloc
from the MCLGET macro to the MCLALLOC macro, as shown by the following diffs:

*** mbuf.h.old	Thu Sep 11 06:07:29 1986
--- mbuf.h	Thu Sep 11 06:20:07 1986
***************
*** 5,7 ****
   *
!  *	@(#)mbuf.h	7.1 (Berkeley) 6/4/86
   */
--- 5,7 ----
   *
!  *	@(#)mbuf.h	7.3 (Berkeley) 9/11/86
   */
***************
*** 97,98 ****
--- 97,100 ----
  	{ int ms = splimp(); \
+ 	  if (mclfree == 0) \
+ 		(void)m_clalloc((i), MPG_CLUSTERS, M_DONTWAIT); \
  	  if ((m)=mclfree) \
***************
*** 105,108 ****
  	{ struct mbuf *p; \
- 	  if (mclfree == 0) \
- 		(void)m_clalloc(1, MPG_CLUSTERS, M_DONTWAIT); \
  	  MCLALLOC(p, 1); \
--- 107,108 ----
Technical Details
Message-ID: <8610230017.AA04477@monet.Berkeley.EDU>
Path: arc1-ca.pugleaf.net!utzoo!mnetor!seismo!columbia!rutgers!ll-xn!mit-eddie!genrad!decvax!ucbvax!MONET!karels

Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: arc1-ca.pugleaf.net!utzoo!mnetor!seismo!columbia!rutgers!ll-xn!mit-eddie!genrad!decvax!ucbvax!MONET!karels
From: karels@MONET (Mike Karels)
Newsgroups: net.bugs.4bsd
Subject: 4.3BSD network bug (#3, MCLGET/mbuf.h)
Message-ID: <8610230017.AA04477@monet.Berkeley.EDU>
Date: Wed, 22-Oct-86 20:17:48 EDT
Article-I.D.: monet.8610230017.AA04477
Posted: Wed Oct 22 20:17:48 1986
Date-Received: Thu, 23-Oct-86 07:19:06 EDT
Sender: daemon@ucbvax.BERKELEY.EDU
Organization: University of California at Berkeley
Lines: 47