From mboxrd@z Thu Jan 1 00:00:00 1970 From: Grant Grundler Subject: Re: PATCHv3 2.6.17-rc5 tulip free_irq() called too late Date: Wed, 14 Jun 2006 08:54:15 -0600 Message-ID: <20060614145415.GA5061@colo.lackof.org> References: <20060531195234.GA4967@colo.lackof.org> <44883778.8000209@pobox.com> <20060608170120.GI8246@colo.lackof.org> <20060613235531.GA4191@colo.lackof.org> <448F5952.1060201@pobox.com> <20060614044412.GA30552@colo.lackof.org> <20060614130506.GA8556@skunkworks.cabal.ca> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Grant Grundler , Jeff Garzik , Valerie Henson , Andrew Morton , netdev@vger.kernel.org Return-path: Received: from colo.lackof.org ([198.49.126.79]:53126 "EHLO colo.lackof.org") by vger.kernel.org with ESMTP id S964989AbWFNOyR (ORCPT ); Wed, 14 Jun 2006 10:54:17 -0400 To: Kyle McMartin Content-Disposition: inline In-Reply-To: <20060614130506.GA8556@skunkworks.cabal.ca> Sender: netdev-owner@vger.kernel.org List-Id: netdev.vger.kernel.org On Wed, Jun 14, 2006 at 09:05:06AM -0400, Kyle McMartin wrote: > I think the correct sequence would be: > > reset tulip interrupt mask > flush posted write > > synchronize irq /* make sure we got 'em all */ > tulip_stop_rxtx /* turn off dma */ > free irq /* bye bye */ > > The synchronize irq guarantees we shouldn't see another irq > generated by the card because it was held up somewhere. Kyle, syncronize_irq() only guarantees currently executing interrupt handler completes before handing control back to the caller. It does not guarantee IRQ signals still inflight are "flushed". Remember that IRQ lines are a "sideband" signal and not subject to PCI data ordering rules. thanks, grant