From kabaev@mail.ru  Thu Jul 20 06:06:27 2000
Return-Path: <kabaev@mail.ru>
Received: from mx7.mail.ru (mx7.mail.ru [194.67.23.44])
	by hub.freebsd.org (Postfix) with ESMTP id E189A37B54D
	for <FreeBSD-gnats-submit@freebsd.org>; Thu, 20 Jul 2000 06:06:25 -0700 (PDT)
	(envelope-from kabaev@mail.ru)
Received: from adsl-141-154-74-123.bellatlantic.net ([141.154.74.123] helo=kan.ne.mediaone.net)
	by mx7.mail.ru with esmtp (Exim 3.14 #4)
	id 13FG1r-00044j-00
	for FreeBSD-gnats-submit@freebsd.org; Thu, 20 Jul 2000 17:06:19 +0400
Received: (from kan@localhost)
	by kan.ne.mediaone.net (8.9.3/8.9.3) id JAA00453;
	Thu, 20 Jul 2000 09:03:19 -0400 (EDT)
	(envelope-from kan)
Message-Id: <200007201303.JAA00453@kan.ne.mediaone.net>
Date: Thu, 20 Jul 2000 09:03:19 -0400 (EDT)
From: kabaev@mail.ru
Reply-To: kabaev@mail.ru
To: FreeBSD-gnats-submit@freebsd.org
Subject: M_WAITOK in interrupt context panic in NETGRAPH 
X-Send-Pr-Version: 3.2

>Number:         20057
>Category:       kern
>Synopsis:       netgraph panics in ng_base.c:ng_path2node
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    archie
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jul 20 06:10:00 PDT 2000
>Closed-Date:    Thu Jul 20 10:24:43 PDT 2000
>Last-Modified:  Thu Jul 20 10:25:25 PDT 2000
>Originator:     Alexander N. Kabaev
>Release:        FreeBSD 5.0-CURRENT i386
>Organization:
>Environment:

FreeBSD kan.ne.mediaone.net 5.0-CURRENT FreeBSD 5.0-CURRENT #2: Thu Jul 20 00:13:12 EDT 2000     kan@kan.ne.mediaone.net:/usr/src/sys/compile/KAN  i386

>Description:

   ng_path2node function is sometimes called from the interrupt context
   (from SWI => ng_intr => ng_pppoe_??? .... => ng_path2node), yet it
   allocates memory buffer with M_WAITOK. That causes the above mentioned
   panic. 

>How-To-Repeat:

   use ppp in PPPoe mode with INVARIANTS in the kernel

>Fix:

Index: ng_base.c
===================================================================
RCS file: /home/ncvs/src/sys/netgraph/ng_base.c,v
retrieving revision 1.20
diff -u -r1.20 ng_base.c
--- ng_base.c	2000/05/26 02:05:38	1.20
+++ ng_base.c	2000/07/20 12:48:06
@@ -1100,7 +1100,7 @@
 
 	/* Now compute return address, i.e., the path to the sender */
 	if (rtnp != NULL) {
-		MALLOC(*rtnp, char *, NG_NODELEN + 2, M_NETGRAPH, M_WAITOK);
+		MALLOC(*rtnp, char *, NG_NODELEN + 2, M_NETGRAPH, M_NOWAIT);
 		if (*rtnp == NULL) {
 			TRAP_ERROR;
 			return (ENOMEM);


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->archie 
Responsible-Changed-By: sheldonh 
Responsible-Changed-When: Thu Jul 20 06:15:13 PDT 2000 
Responsible-Changed-Why:  
Over to one of the netgraph maintainers. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=20057 
State-Changed-From-To: open->closed 
State-Changed-By: archie 
State-Changed-When: Thu Jul 20 10:24:43 PDT 2000 
State-Changed-Why:  
Fixed in -current; will be MFC'd later. Thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=20057 
>Unformatted:
