From owner-cvs-src-old@FreeBSD.ORG Mon Oct 11 23:07:23 2010 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 69AF0106564A for ; Mon, 11 Oct 2010 23:07:23 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 562ED8FC08 for ; Mon, 11 Oct 2010 23:07:23 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.4/8.14.4) with ESMTP id o9BN7Nwh046257 for ; Mon, 11 Oct 2010 23:07:23 GMT (envelope-from yongari@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.4/8.14.4/Submit) id o9BN7NMG046256 for cvs-src-old@freebsd.org; Mon, 11 Oct 2010 23:07:23 GMT (envelope-from yongari@repoman.freebsd.org) Message-Id: <201010112307.o9BN7NMG046256@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to yongari@repoman.freebsd.org using -f From: Pyun YongHyeon Date: Mon, 11 Oct 2010 23:07:12 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/dev/bge if_bge.c X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Oct 2010 23:07:23 -0000 yongari 2010-10-11 23:07:12 UTC FreeBSD src repository Modified files: sys/dev/bge if_bge.c Log: SVN rev 213711 on 2010-10-11 23:07:12Z by yongari The IFF_DRV_RUNNING flag is set at the end of bge_init_locked. But before setting the flag, interrupt was already enabled such that interrupt handler could be run before setting IFF_DRV_RUNNING flag. This can lose initial link state change interrupt which in turn make bge(4) think that it still does not have valid link. Fix this race by protecting the taskqueue with a driver lock. While I'm here move reenabling interrupt code after handling of link state chage. Reviewed by: davidch Revision Changes Path 1.320 +13 -9 src/sys/dev/bge/if_bge.c