Index: sys/dev/xl/if_xl.c =================================================================== --- sys/dev/xl/if_xl.c (revision 241622) +++ sys/dev/xl/if_xl.c (working copy) @@ -2160,14 +2160,12 @@ } #endif - for (;;) { + for (; (ifp->if_drv_flags & IFF_DRV_RUNNING) != 0;) { status = CSR_READ_2(sc, XL_STATUS); if ((status & XL_INTRS) == 0 || status == 0xFFFF) break; CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_INTR_ACK|(status & XL_INTRS)); - if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) - break; if (status & XL_STAT_UP_COMPLETE) { if (xl_rxeof(sc) == 0) {