Date: Wed, 11 Jun 2003 20:37:28 -0700 (PDT) From: Warner Losh <imp@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/dev/pccbb pccbb.c pccbbvar.h Message-ID: <200306120337.h5C3bSmB075154@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
imp 2003/06/11 20:37:28 PDT
FreeBSD src repository
Modified files:
sys/dev/pccbb pccbb.c pccbbvar.h
Log:
Make cbb interrupts MPSAFE:
o Register ISR INTR_MPSAFE.
o Loop on KTHREAD_DONE == 0 in the thread.
o Safe the INTR_MPSAFE flag for client drivers (don't know if there are any
CardBus/PCI drivers that are INTR_MPSAFE)
o Read status after acquiring mtx_lock(Giant) rather than before so that we
catch state changes that happen while Giant is being acquired.
o Turn off the CD bit when we see a CD interrupt, and turn it back on after
we've attached/detached the card.
o On suspend, actually set the CBB_SOCKET_MASK to zero rather than oring
in '0' to turn it off on suspend.
o If the ISR that's registerd is MPSAFE, don't acquire Giant around call to
client ISR.
o Fix comments to reflect these changes.
Revision Changes Path
1.76 +31 -20 src/sys/dev/pccbb/pccbb.c
1.19 +3 -2 src/sys/dev/pccbb/pccbbvar.h
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200306120337.h5C3bSmB075154>
