summaryrefslogtreecommitdiffstats
path: root/sys/pccard/pcic.c
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2001-05-07 16:50:34 +0000
committerimp <imp@FreeBSD.org>2001-05-07 16:50:34 +0000
commit04a6a52217ab308220e97946befc2943eb93f68c (patch)
tree0c25fc8acfa88d187132f86e391c2773d34b5fd3 /sys/pccard/pcic.c
parent42ebd3a4f42cd91f4e2bdf8170403f08418352b4 (diff)
downloadFreeBSD-src-04a6a52217ab308220e97946befc2943eb93f68c.zip
FreeBSD-src-04a6a52217ab308220e97946befc2943eb93f68c.tar.gz
Disable the card after sending the removed event up to the pccard
layer. This fixes an ordering problem that would cause the ISR for the device to run with now power applied to the device. Most cards failed to deal with this gracefully, and thus would hang on card eject. The power down event, for those keeping score, is what causes the interrupt for the card. Many folks in the Japanese nomads list have reported this, so I'll be MFCing quickly for their benefit. Submitted by: Masayuki FUKUI MFC after: 2 days
Diffstat (limited to 'sys/pccard/pcic.c')
-rw-r--r--sys/pccard/pcic.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/pccard/pcic.c b/sys/pccard/pcic.c
index 5dff359..9bb7e01 100644
--- a/sys/pccard/pcic.c
+++ b/sys/pccard/pcic.c
@@ -853,9 +853,9 @@ pcicintr(void *arg)
pccard_event(sp->slt,
card_inserted);
} else {
- cinfo.disable(sp->slt);
pccard_event(sp->slt,
card_removed);
+ cinfo.disable(sp->slt);
}
}
}
OpenPOWER on IntegriCloud