--- //depot/user/jhb/acpipci/pci/if_pcn.c 2005/07/30 16:03:41 +++ //depot/user/jhb/acpipci/pci/if_pcn.c 2005/08/01 14:02:07 @@ -586,7 +586,7 @@ eaddr[1] = CSR_READ_4(sc, PCN_IO32_APROM01); sc->pcn_unit = unit; - callout_init(&sc->pcn_stat_callout, 0); + callout_init(&sc->pcn_stat_callout, CALLOUT_MPSAFE); sc->pcn_ldata = contigmalloc(sizeof(struct pcn_list_data), M_DEVBUF, M_NOWAIT, 0, 0xffffffff, PAGE_SIZE, 0); @@ -607,8 +607,7 @@ ifp->if_softc = sc; if_initname(ifp, device_get_name(dev), device_get_unit(dev)); ifp->if_mtu = ETHERMTU; - ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST | - IFF_NEEDSGIANT; + ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; ifp->if_ioctl = pcn_ioctl; ifp->if_start = pcn_start; ifp->if_watchdog = pcn_watchdog; @@ -633,7 +632,7 @@ ether_ifattach(ifp, (u_int8_t *) eaddr); /* Hook interrupt last to avoid having to lock softc */ - error = bus_setup_intr(dev, sc->pcn_irq, INTR_TYPE_NET, + error = bus_setup_intr(dev, sc->pcn_irq, INTR_TYPE_NET | INTR_MPSAFE, pcn_intr, sc, &sc->pcn_intrhand); if (error) {