summaryrefslogtreecommitdiffstats
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
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
-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