diff --git a/sys/dev/fxp/if_fxp.c b/sys/dev/fxp/if_fxp.c index 6092215d1f65..2253a6f59a3e 100644 --- a/sys/dev/fxp/if_fxp.c +++ b/sys/dev/fxp/if_fxp.c @@ -460,13 +460,6 @@ fxp_attach(device_t dev) goto fail; } - error = bus_setup_intr(dev, sc->irq, INTR_TYPE_NET, - fxp_intr, sc, &sc->ih); - if (error) { - device_printf(dev, "could not setup irq\n"); - goto fail; - } - /* * Reset to a stable state. */ @@ -770,11 +763,6 @@ fxp_attach(device_t dev) ifp->if_capenable = ifp->if_capabilities; } - /* - * Attach the interface. - */ - ether_ifattach(ifp, sc->arpcom.ac_enaddr); - /* * Tell the upper layer(s) we support long frames. */ @@ -787,6 +775,18 @@ fxp_attach(device_t dev) */ ifp->if_snd.ifq_maxlen = FXP_NTXCB - 1; + /* + * Attach the interface. + */ + ether_ifattach(ifp, sc->arpcom.ac_enaddr); + + error = bus_setup_intr(dev, sc->irq, INTR_TYPE_NET, + fxp_intr, sc, &sc->ih); + if (error) { + device_printf(dev, "could not setup irq\n"); + goto fail; + } + splx(s); return (0);