From owner-cvs-all@FreeBSD.ORG Sat Jul 26 17:04:36 2008 Return-Path: Delivered-To: cvs-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3DD361065724; Sat, 26 Jul 2008 17:04:36 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 22FB88FC0C; Sat, 26 Jul 2008 17:04:36 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.2/8.14.2) with ESMTP id m6QH4aAx026216; Sat, 26 Jul 2008 17:04:36 GMT (envelope-from imp@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m6QH4aPH026215; Sat, 26 Jul 2008 17:04:36 GMT (envelope-from imp@repoman.freebsd.org) Message-Id: <200807261704.m6QH4aPH026215@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to imp@repoman.freebsd.org using -f From: Warner Losh Date: Sat, 26 Jul 2008 17:04:30 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/dev/wi if_wi.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: Sat, 26 Jul 2008 17:04:36 -0000 imp 2008-07-26 17:04:30 UTC FreeBSD src repository Modified files: sys/dev/wi if_wi.c Log: SVN rev 180826 on 2008-07-26 17:04:30Z by imp Register the interrupt handler at the end of wi_attach rather than at the beginning. There's a race in the shared interrutp case. If another interrupt happens after the interrupt is setup, then we'd try to lock an uninitialized mutex. In addition, if we bailed out due to a too old version of firmware, we'd leave the interrupt enabled with all the fun that ensues.... Revision Changes Path 1.219 +11 -13 src/sys/dev/wi/if_wi.c