From owner-cvs-all@FreeBSD.ORG Thu May 1 10:13:25 2003 Return-Path: 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 BB76037B401; Thu, 1 May 2003 10:13:25 -0700 (PDT) Received: from harmony.village.org (rover.bsdimp.com [204.144.255.66]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3E5CF43FDD; Thu, 1 May 2003 10:13:24 -0700 (PDT) (envelope-from imp@bsdimp.com) Received: from localhost (warner@rover2.village.org [10.0.0.1]) by harmony.village.org (8.12.8/8.12.3) with ESMTP id h41HDLA7008906; Thu, 1 May 2003 11:13:21 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Thu, 01 May 2003 11:13:15 -0600 (MDT) Message-Id: <20030501.111315.85393988.imp@bsdimp.com> To: gibbs@scsiguy.com From: "M. Warner Losh" In-Reply-To: <1742240000.1051807110@aslan.btc.adaptec.com> References: <1721460000.1051803729@aslan.btc.adaptec.com> <20030501.101409.57443470.imp@bsdimp.com> <1742240000.1051807110@aslan.btc.adaptec.com> X-Mailer: Mew version 2.1 on Emacs 21.2 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit cc: cvs-src@freebsd.org cc: src-committers@freebsd.org cc: cvs-all@freebsd.org cc: jhb@freebsd.org cc: gallatin@cs.duke.edu Subject: Re: cvs commit: src/sys/dev/fxp if_fxp.c if_fxpvar.h X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.1 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, 01 May 2003 17:13:26 -0000 In message: <1742240000.1051807110@aslan.btc.adaptec.com> "Justin T. Gibbs" writes: : I don't see that there is any problem with the above approach (it is the : same flow as is used by the ahc and ahd driver) but I still don't see why : a gone flag is required. Just run through the handler as you normally : would in the shared interrupt case. The handler will exit if written : correctly. You assume that the hardware is still there in this case. It might be gone. Certainly by the time the detach routine is called it is gone for cardbus case. However, you may be right in that cardbus stops delivering interrupts to the card as soon as we determine it is gone and then calls detach. The only race would be something like: fxp_intr() eject happens here, card no longer there However, this race is very hard to hit. I've managed to hit it once in about 100 card ejects, and then only on a busy network. Warner