- struct rxerr *er = &rxerr[ctlr];
- register struct rx_ctlr *rxc = &rx_ctlr[ctlr];
- register struct rxdeferr *ed;
-
- if (um->um_tab.b_actf->b_active) {
- bp = um->um_tab.b_actf->b_actf;
- if ((rxaddr->rxcs & RXERR) &&
- rxc->rxc_state != RXS_RDSTAT && rxc->rxc_state != RXS_RDERR)
- bp->b_flags |= B_ERROR;
- ubadone(um);
- um->um_tab.b_actf->b_active = 0;
- um->um_tab.b_actf->b_actf = bp->b_forw;
- bp->b_active = 0;
- bp->b_errcnt = 0;
- bp->b_resid = 0;
- iodone(bp);
- }
- if (um->um_tab.b_actf->b_actf == 0) {
- sc->sc_iostate &= ~VAS_DMA;
- if (sc->sc_iostate&VAS_WANT) {
- sc->sc_iostate &= ~VAS_WANT;
- wakeup((caddr_t)&sc->sc_iostate);
- }