imp 2003/06/11 20:37:28 PDT
FreeBSD src repository
sys/dev/pccbb pccbb.c pccbbvar.h
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
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