summaryrefslogtreecommitdiffstats
path: root/sys/dev/pccbb/pccbbvar.h
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2003-06-12 03:37:28 +0000
committerimp <imp@FreeBSD.org>2003-06-12 03:37:28 +0000
commit2c0da83361413653fcb6462f83005ae3f97e9a64 (patch)
treef63de3e9804db173ad6de64a14c36a45a4238605 /sys/dev/pccbb/pccbbvar.h
parent78dbcf9c67e2333962eccae3afe7532398f373ae (diff)
downloadFreeBSD-src-2c0da83361413653fcb6462f83005ae3f97e9a64.zip
FreeBSD-src-2c0da83361413653fcb6462f83005ae3f97e9a64.tar.gz
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.
Diffstat (limited to 'sys/dev/pccbb/pccbbvar.h')
-rw-r--r--sys/dev/pccbb/pccbbvar.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/dev/pccbb/pccbbvar.h b/sys/dev/pccbb/pccbbvar.h
index d77d33b..c050c11 100644
--- a/sys/dev/pccbb/pccbbvar.h
+++ b/sys/dev/pccbb/pccbbvar.h
@@ -33,8 +33,9 @@
*/
struct cbb_intrhand {
- driver_intr_t *intr;
- void *arg;
+ driver_intr_t *intr;
+ void *arg;
+ uint32_t flags;
STAILQ_ENTRY(cbb_intrhand) entries;
};
OpenPOWER on IntegriCloud