diff options
-rw-r--r-- | sys/dev/pci/if_vr.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/sys/dev/pci/if_vr.c b/sys/dev/pci/if_vr.c index 6023d33a07c..e8ec0e4c093 100644 --- a/sys/dev/pci/if_vr.c +++ b/sys/dev/pci/if_vr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_vr.c,v 1.106 2010/09/03 18:14:54 kettenis Exp $ */ +/* $OpenBSD: if_vr.c,v 1.107 2011/01/13 11:28:14 kettenis Exp $ */ /* * Copyright (c) 1997, 1998 @@ -1048,15 +1048,11 @@ vr_intr(void *arg) /* Disable interrupts. */ CSR_WRITE_2(sc, VR_IMR, 0x0000); - for (;;) { - - status = CSR_READ_2(sc, VR_ISR); - if (status) - CSR_WRITE_2(sc, VR_ISR, status); - - if ((status & VR_INTRS) == 0) - break; + status = CSR_READ_2(sc, VR_ISR); + if (status) + CSR_WRITE_2(sc, VR_ISR, status); + if (status & VR_INTRS) { claimed = 1; if (status & VR_ISR_RX_OK) @@ -1092,7 +1088,7 @@ vr_intr(void *arg) sc->sc_dev.dv_xname); vr_reset(sc); vr_init(sc); - break; + status = 0; } if ((status & VR_ISR_TX_OK) || (status & VR_ISR_TX_ABRT) || |