Index: if_ie_isa.c =================================================================== --- if_ie_isa.c (revision 179491) +++ if_ie_isa.c (working copy) @@ -802,11 +802,13 @@ static device_method_t ie_isa_3C507_methods[] = { DEVMETHOD(device_detach, ie_detach), { 0, 0 } }; + static driver_t ie_isa_3C507_driver = { "ie", ie_isa_3C507_methods, sizeof(struct ie_softc), }; + DRIVER_MODULE(ie_3C507, isa, ie_isa_3C507_driver, ie_devclass, ie_modevent, 0); MODULE_DEPEND(ie_3C507, elink, 1, 1, 1); @@ -817,24 +819,28 @@ static device_method_t ie_isa_ee16_methods[] = { DEVMETHOD(device_detach, ie_detach), { 0, 0 } }; + static driver_t ie_isa_ee16_driver = { "ie", ie_isa_ee16_methods, sizeof(struct ie_softc), }; -DRIVER_MODULE(ie_EE16, isa, ie_isa_ee16_driver, ie_devclass, ie_modevent, 0); +DRIVER_MODULE(ie, isa, ie_isa_ee16_driver, ie_devclass, ie_modevent, 0); + static device_method_t ie_isa_sl_methods[] = { DEVMETHOD(device_probe, ie_isa_sl_probe), DEVMETHOD(device_attach, ie_isa_sl_attach), DEVMETHOD(device_detach, ie_detach), { 0, 0 } }; + static driver_t ie_isa_sl_driver = { "ie", ie_isa_sl_methods, sizeof(struct ie_softc), }; + DRIVER_MODULE(ie_SL, isa, ie_isa_sl_driver, ie_devclass, ie_modevent, 0); static int Index: if_ie.c =================================================================== --- if_ie.c (revision 179491) +++ if_ie.c (working copy) @@ -320,7 +320,7 @@ ie_attach(device_t dev) ifp->if_start = iestart; ifp->if_ioctl = ieioctl; ifp->if_init = ieinit; - ifp->if_snd.ifq_maxlen = IFQ_MAXLEN; + IFQ_SET_MAXLEN(&ifp->if_snd, IFQ_MAXLEN); if (sc->hard_type == IE_EE16) EVENTHANDLER_REGISTER(shutdown_post_sync, ee16_shutdown, @@ -1642,12 +1642,12 @@ ieioctl(struct ifnet *ifp, u_long command, caddr_t (ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) { sc->promisc = ifp->if_flags & (IFF_PROMISC | IFF_ALLMULTI); - ieinit(sc); + ieinit_locked(sc); } else if (sc->promisc ^ (ifp->if_flags & (IFF_PROMISC | IFF_ALLMULTI))) { sc->promisc = ifp->if_flags & (IFF_PROMISC | IFF_ALLMULTI); - ieinit(sc); + ieinit_locked(sc); } IE_UNLOCK(sc); break;