From owner-cvs-all@FreeBSD.ORG Thu Aug 18 20:08:01 2005 Return-Path: X-Original-To: cvs-all@FreeBSD.org Delivered-To: cvs-all@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 194BA16A420; Thu, 18 Aug 2005 20:08:01 +0000 (GMT) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [204.156.12.53]) by mx1.FreeBSD.org (Postfix) with ESMTP id BCA5943D78; Thu, 18 Aug 2005 20:07:58 +0000 (GMT) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [204.156.12.50]) by cyrus.watson.org (Postfix) with ESMTP id 0564646BB6; Thu, 18 Aug 2005 16:07:58 -0400 (EDT) Date: Thu, 18 Aug 2005 21:12:33 +0100 (BST) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: John Baldwin In-Reply-To: <200508181538.32988.jhb@FreeBSD.org> Message-ID: <20050818211150.W32515@fledge.watson.org> References: <200508181429.j7IET16d038533@repoman.freebsd.org> <200508181238.05411.jhb@FreeBSD.org> <4304D6B9.8050603@portaone.com> <200508181538.32988.jhb@FreeBSD.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: cvs-src@FreeBSD.org, Maxim.Sobolev@portaone.com, cvs-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: cvs commit: src/sys/dev/re if_re.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Aug 2005 20:08:01 -0000 On Thu, 18 Aug 2005, John Baldwin wrote: > I've still yet to see what the real panic is. For one thing, if the > foo_stop method does its jobs, the ethernet hardware shouldn't be > generating interrupts. The stop method should be shutting the card down > (i.e. turning off the receiver and transmitter for example). Is your > ethernet driver sharing an interrupt with another device and the other > device is interrupting? In that case, the ethernet driver would have > the same panic if you did an 'ifconfig foo0 down' and then the other > device interrupted. So, I think clearing IFF_UPP in foo_shutdown() is > wrong. foo_stop() should really be sufficient, and foo_intr() should be > able to handle a spurious interrupt while the interface is stopped > without panicing since it already needs to do so to handle the shared > interrupt case. Ideally, I'd like to see device drivers stop setting or clearing stack-owned bits, such as IFF_UP, IFF_PROMISC, etc. However, we probably have a ways to go before we're there. Robert N M Watson