Remove redundant dc_stop() / dc_reset() calls from dc_intr() and dc_watchdog() which dc_init() already takes care of.
OK? Index: ic/dc.c =================================================================== RCS file: /home/cvs/src/sys/dev/ic/dc.c,v retrieving revision 1.134 diff -u -p -u -p -r1.134 dc.c --- ic/dc.c 22 Jul 2014 13:12:11 -0000 1.134 +++ ic/dc.c 9 Sep 2014 16:54:03 -0000 @@ -2481,10 +2481,8 @@ dc_intr(void *arg) } } - if (status & DC_ISR_BUS_ERR) { - dc_reset(sc); + if (status & DC_ISR_BUS_ERR) dc_init(sc); - } } /* Re-enable interrupts. */ @@ -2986,8 +2984,6 @@ dc_watchdog(struct ifnet *ifp) ifp->if_oerrors++; printf("%s: watchdog timeout\n", sc->sc_dev.dv_xname); - dc_stop(sc, 0); - dc_reset(sc); dc_init(sc); if (IFQ_IS_EMPTY(&ifp->if_snd) == 0) -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.