While in the interrupt loop, check for a bogus interrupt value of 0xff.

This may be returned if the underlying hardware is a pc-card which has
been ejected.

Reviewed by: warner
This commit is contained in:
jlemon 2001-06-04 22:01:44 +00:00
parent e90cb846c6
commit a3f3e57534

View File

@ -1010,6 +1010,15 @@ fxp_intr(void *xsc)
}
while ((statack = CSR_READ_1(sc, FXP_CSR_SCB_STATACK)) != 0) {
/*
* It should not be possible to have all bits set; the
* FXP_SCB_INTR_SWI bit always returns 0 on a read. If
* all bits are set, this may indicate that the card has
* been physically ejected, so ignore it.
*/
if (statack == 0xff)
return;
/*
* First ACK all the interrupts in this pass.
*/