--- src/sys/dev/netif/cm/Attic/if_cm_isa.c 2005/08/30 10:16:33 1.10 +++ src/sys/dev/netif/cm/Attic/if_cm_isa.c 2005/09/01 09:17:19 1.11 @@ -82,26 +82,29 @@ cm_isa_attach(dev) cm_alloc_memory(dev, sc->mem_rid, sc->mem_used); cm_alloc_irq(dev, sc->irq_rid); + error = cm_attach(dev); + if (error) + return error; + error = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_NET, cmintr, sc, &sc->irq_handle, NULL); if (error) { + arc_ifdetach(&sc->sc_arccom.ac_if); cm_release_resources(dev); return (error); } - return cm_attach(dev); + return 0; } static int cm_isa_detach(device_t dev) { struct cm_softc *sc = device_get_softc(dev); - struct ifnet *ifp = &sc->sc_arccom.ac_if; crit_enter(); cm_stop(sc); - ifp->if_flags &= ~IFF_RUNNING; arc_ifdetach(&sc->sc_arccom.ac_if); bus_teardown_intr(dev, sc->irq_res, sc->irq_handle);