From owner-cvs-src@FreeBSD.ORG Tue Apr 29 18:54:39 2003 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id AA17337B401; Tue, 29 Apr 2003 18:54:39 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5BFC943FBD; Tue, 29 Apr 2003 18:54:39 -0700 (PDT) (envelope-from imp@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h3U1sd0U085080; Tue, 29 Apr 2003 18:54:39 -0700 (PDT) (envelope-from imp@repoman.freebsd.org) Received: (from imp@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h3U1sdLO085077; Tue, 29 Apr 2003 18:54:39 -0700 (PDT) Message-Id: <200304300154.h3U1sdLO085077@repoman.freebsd.org> From: Warner Losh Date: Tue, 29 Apr 2003 18:54:39 -0700 (PDT) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/dev/fxp if_fxp.c if_fxpvar.h X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Apr 2003 01:54:40 -0000 imp 2003/04/29 18:54:39 PDT FreeBSD src repository Modified files: sys/dev/fxp if_fxp.c if_fxpvar.h Log: Get rid of the redundant 'gone' field, and overload suspend instead. Check for suspend before the device polling, rather than after it. Check to see if the current thread owns the lock in ioctl and return EBUSY if it does. This advances the locking to the point that I can eject my fxp card 10 times in a row, but I agree with Jeff Hsu that we need to get the network layer locking finished before chasing more of the races here (actually, he doesn't think this set is worth it even). There's a number of races between FXP_LOCK in detach and all other users of FXP_LOCK, and this gets back to the 'device with sleepers being forcibly detached' problem as well... Revision Changes Path 1.177 +11 -11 src/sys/dev/fxp/if_fxp.c 1.27 +1 -2 src/sys/dev/fxp/if_fxpvar.h