Remove unnecessary controller reinitialization.
CAM filter handling was rewritten long time ago so it should not require controller reinitialization. PR: kern/87506
This commit is contained in:
parent
7c45b43651
commit
9fb40e0a9b
@ -1560,6 +1560,7 @@ vr_tick(void *xsc)
|
||||
sc->vr_stat.num_restart++;
|
||||
vr_stop(sc);
|
||||
vr_reset(sc);
|
||||
sc->vr_ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
|
||||
vr_init_locked(sc);
|
||||
sc->vr_flags &= ~VR_F_RESTART;
|
||||
}
|
||||
@ -2016,6 +2017,9 @@ vr_init_locked(struct vr_softc *sc)
|
||||
ifp = sc->vr_ifp;
|
||||
mii = device_get_softc(sc->vr_miibus);
|
||||
|
||||
if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0)
|
||||
return;
|
||||
|
||||
/* Cancel pending I/O and free all RX/TX buffers. */
|
||||
vr_stop(sc);
|
||||
vr_reset(sc);
|
||||
@ -2287,6 +2291,7 @@ vr_watchdog(struct vr_softc *sc)
|
||||
if_printf(sc->vr_ifp, "watchdog timeout "
|
||||
"(missed link)\n");
|
||||
ifp->if_oerrors++;
|
||||
ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
|
||||
vr_init_locked(sc);
|
||||
return;
|
||||
}
|
||||
@ -2296,6 +2301,7 @@ vr_watchdog(struct vr_softc *sc)
|
||||
|
||||
vr_stop(sc);
|
||||
vr_reset(sc);
|
||||
ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
|
||||
vr_init_locked(sc);
|
||||
|
||||
if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd))
|
||||
|
Loading…
Reference in New Issue
Block a user