From owner-freebsd-current@FreeBSD.ORG Thu Apr 22 14:27:28 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5009F16A4CE; Thu, 22 Apr 2004 14:27:28 -0700 (PDT) Received: from fledge.watson.org (fledge.watson.org [204.156.12.50]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0003E43D1D; Thu, 22 Apr 2004 14:27:27 -0700 (PDT) (envelope-from robert@fledge.watson.org) Received: from fledge.watson.org (localhost [127.0.0.1]) by fledge.watson.org (8.12.11/8.12.11) with ESMTP id i3MLRB5Z027289; Thu, 22 Apr 2004 17:27:11 -0400 (EDT) (envelope-from robert@fledge.watson.org) Received: from localhost (robert@localhost)i3MLRBgb027286; Thu, 22 Apr 2004 17:27:11 -0400 (EDT) (envelope-from robert@fledge.watson.org) Date: Thu, 22 Apr 2004 17:27:11 -0400 (EDT) From: Robert Watson X-Sender: robert@fledge.watson.org To: "Simon L. Nielsen" In-Reply-To: <20040422212448.GB801@zaphod.nitro.dk> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: freebsd-current@FreeBSD.org Subject: Re: panic: mutex Giant not owned at src/sys/security/mac/mac_net.c:355 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Apr 2004 21:27:28 -0000 On Thu, 22 Apr 2004, Simon L. Nielsen wrote: > On 2004.04.22 17:19:32 -0400, Robert Watson wrote: > > > > On Thu, 22 Apr 2004, Simon L. Nielsen wrote: > > > > > I have a reproduceable panic when I have MAC enabled in my kernel and I > > > try to run tcpdump on the interface I have logged in on via ssh (I'm not > > > really sure why it only happens in this case and in other cases). I run > > > "tcpdump -n -i sis0" and the panic as shown below. I do not have any > > > MAC policies loaded. > > > > > > The problem is (if I understand the code correctly) that MAC calls > > > BPFD_LOCK_ASSERT, which rwatson added NET_ASSERT_GIANT to, but since the > > > sis interrupt handler is marked INTR_MPSAFE then GIANT isn't aquired > > > before bpf_mtap (and therefor mac_check_bpfdesc_receive) is called. > > > > > > I'm not really sure what the correct fix is, but if bpf is locked, is > > > GIANT really required for it? > > > > Are you running a main line kernel with debug.mpsafenet turned on? > > Main line kernel (I assume you mean no special patches), but > debug.mpsafenet is turned off. > > [root@soekris:~] sysctl debug.mpsafenet > debug.mpsafenet: 0 In the main line kernel with debug.mpsafenet turned off, INTR_MPSAFE is supposed to be ignored for network interrupts, resulting in inbound network stack code running with Giant held. Is there any chance that the interrupt thread is being shared with another device? dmesg output would be useful, along with some devinfo output. It could be there's a problem resulting in Giant not being held under those circumstances, or that Giant is being dropped somewhere it shouldn't be. Robert N M Watson FreeBSD Core Team, TrustedBSD Projects robert@fledge.watson.org Senior Research Scientist, McAfee Research