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
This commit is contained in:
Warner Losh 2001-05-07 16:50:34 +00:00
parent e4b486696e
commit a66173abd2
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=76333

View File

@ -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);
}
}
}