Date: Mon, 11 Oct 2010 23:07:12 +0000 (UTC) From: Pyun YongHyeon <yongari@FreeBSD.org> To: cvs-src-old@freebsd.org Subject: cvs commit: src/sys/dev/bge if_bge.c Message-ID: <201010112307.o9BN7NMG046256@repoman.freebsd.org>
index | next in thread | raw e-mail
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
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201010112307.o9BN7NMG046256>
