diff --git a/src/add-ons/kernel/drivers/network/Jamfile b/src/add-ons/kernel/drivers/network/Jamfile index bc022e8083..4de7a37c88 100644 --- a/src/add-ons/kernel/drivers/network/Jamfile +++ b/src/add-ons/kernel/drivers/network/Jamfile @@ -21,7 +21,6 @@ SubInclude HAIKU_TOP src add-ons kernel drivers network wb840 ; # FreeBSD 9.2 drivers SubInclude HAIKU_TOP src add-ons kernel drivers network 3com ; SubInclude HAIKU_TOP src add-ons kernel drivers network dec21xxx ; -SubInclude HAIKU_TOP src add-ons kernel drivers network via_rhine ; # FreeBSD 9.3 drivers SubInclude HAIKU_TOP src add-ons kernel drivers network jmicron2x0 ; @@ -42,4 +41,5 @@ SubInclude HAIKU_TOP src add-ons kernel drivers network rdc ; SubInclude HAIKU_TOP src add-ons kernel drivers network rtl8139 ; SubInclude HAIKU_TOP src add-ons kernel drivers network rtl81xx ; SubInclude HAIKU_TOP src add-ons kernel drivers network syskonnect ; +SubInclude HAIKU_TOP src add-ons kernel drivers network via_rhine ; SubInclude HAIKU_TOP src add-ons kernel drivers network vt612x ; diff --git a/src/add-ons/kernel/drivers/network/via_rhine/Jamfile b/src/add-ons/kernel/drivers/network/via_rhine/Jamfile index c4872e4b29..1e15088148 100644 --- a/src/add-ons/kernel/drivers/network/via_rhine/Jamfile +++ b/src/add-ons/kernel/drivers/network/via_rhine/Jamfile @@ -1,3 +1,27 @@ SubDir HAIKU_TOP src add-ons kernel drivers network via_rhine ; -SubInclude HAIKU_TOP src add-ons kernel drivers network via_rhine dev ; +UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd11_network compat ] + : true ; +UsePrivateHeaders net system ; +UsePrivateKernelHeaders ; + +SubDirCcFlags [ FDefines _KERNEL=1 FBSD_DRIVER=1 ] ; + +UseHeaders [ FDirName $(SUBDIR) ] : true ; + +SEARCH_SOURCE += [ FDirName $(SUBDIR) dev mii ] ; +SEARCH_SOURCE += [ FDirName $(SUBDIR) dev vr ] ; + +KernelAddon via_rhine : + glue.c + ciphy.c + ukphy.c + ukphy_subr.c + if_vr.c + : libfreebsd11_network.a + ; + +ObjectHdrs [ FGristFiles ciphy$(SUFOBJ) ukphy$(SUFOBJ) ] + : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs + compat freebsd11_network ] ; +Includes [ FGristFiles ciphy.c ukphy.c ] : miidevs.h ; diff --git a/src/add-ons/kernel/drivers/network/via_rhine/dev/Jamfile b/src/add-ons/kernel/drivers/network/via_rhine/dev/Jamfile deleted file mode 100644 index 2434be159d..0000000000 --- a/src/add-ons/kernel/drivers/network/via_rhine/dev/Jamfile +++ /dev/null @@ -1,4 +0,0 @@ -SubDir HAIKU_TOP src add-ons kernel drivers network via_rhine dev ; - -SubInclude HAIKU_TOP src add-ons kernel drivers network via_rhine dev mii ; -SubInclude HAIKU_TOP src add-ons kernel drivers network via_rhine dev vr ; diff --git a/src/add-ons/kernel/drivers/network/via_rhine/dev/mii/Jamfile b/src/add-ons/kernel/drivers/network/via_rhine/dev/mii/Jamfile deleted file mode 100644 index 86abc49e70..0000000000 --- a/src/add-ons/kernel/drivers/network/via_rhine/dev/mii/Jamfile +++ /dev/null @@ -1,22 +0,0 @@ -SubDir HAIKU_TOP src add-ons kernel drivers network via_rhine dev mii ; - -UseHeaders [ FDirName $(SUBDIR) .. .. ] : true ; -UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_network compat ] : true ; - -UsePrivateHeaders net system ; -UsePrivateKernelHeaders ; - -SubDirCcFlags [ FDefines _KERNEL=1 FBSD_DRIVER=1 ] ; - -KernelStaticLibrary via_rhine_mii.a - : - ciphy.c - ukphy.c - ukphy_subr.c - ; - -ObjectHdrs [ FGristFiles ciphy$(SUFOBJ) ukphy$(SUFOBJ) ] - : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs - compat freebsd_network ] ; -Includes [ FGristFiles ciphy.c ukphy.c ] : miidevs.h ; - diff --git a/src/add-ons/kernel/drivers/network/via_rhine/dev/mii/ciphy.c b/src/add-ons/kernel/drivers/network/via_rhine/dev/mii/ciphy.c index 87d0d814e9..3ecd360bed 100644 --- a/src/add-ons/kernel/drivers/network/via_rhine/dev/mii/ciphy.c +++ b/src/add-ons/kernel/drivers/network/via_rhine/dev/mii/ciphy.c @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: releng/11.1/sys/dev/mii/ciphy.c 277093 2015-01-12 22:27:38Z glebius $"); /* * Driver for the Cicada/Vitesse CS/VSC8xxx 10/100/1000 copper PHY. @@ -91,8 +91,10 @@ static const struct mii_phydesc ciphys[] = { MII_PHY_DESC(xxCICADA, CS8201B), MII_PHY_DESC(xxCICADA, CS8204), MII_PHY_DESC(xxCICADA, VSC8211), + MII_PHY_DESC(xxCICADA, VSC8221), MII_PHY_DESC(xxCICADA, CS8244), MII_PHY_DESC(xxVITESSE, VSC8601), + MII_PHY_DESC(xxVITESSE, VSC8641), MII_PHY_END }; @@ -129,12 +131,6 @@ ciphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) break; case MII_MEDIACHG: - /* - * If the interface is not up, don't do anything. - */ - if ((mii->mii_ifp->if_flags & IFF_UP) == 0) - break; - ciphy_fixup(sc); /* XXX hardware bug work-around */ switch (IFM_SUBTYPE(ife->ifm_media)) { @@ -184,12 +180,6 @@ setit: break; case MII_TICK: - /* - * Is the interface even up? - */ - if ((mii->mii_ifp->if_flags & IFF_UP) == 0) - return (0); - /* * Only used for autonegotiation. */ @@ -313,8 +303,7 @@ ciphy_fixup(struct mii_softc *sc) status = PHY_READ(sc, CIPHY_MII_AUXCSR); speed = status & CIPHY_AUXCSR_SPEED; - if (strcmp(device_get_name(device_get_parent(sc->mii_dev)), - "nfe") == 0) { + if (mii_phy_mac_match(sc, "nfe")) { /* need to set for 2.5V RGMII for NVIDIA adapters */ val = PHY_READ(sc, CIPHY_MII_ECTL1); val &= ~(CIPHY_ECTL1_IOVOL | CIPHY_ECTL1_INTSEL); @@ -368,8 +357,10 @@ ciphy_fixup(struct mii_softc *sc) break; case MII_MODEL_xxCICADA_VSC8211: + case MII_MODEL_xxCICADA_VSC8221: case MII_MODEL_xxCICADA_CS8244: case MII_MODEL_xxVITESSE_VSC8601: + case MII_MODEL_xxVITESSE_VSC8641: break; default: device_printf(sc->mii_dev, "unknown CICADA PHY model %x\n", diff --git a/src/add-ons/kernel/drivers/network/via_rhine/dev/mii/ciphyreg.h b/src/add-ons/kernel/drivers/network/via_rhine/dev/mii/ciphyreg.h index dd73f87783..20b953a35b 100644 --- a/src/add-ons/kernel/drivers/network/via_rhine/dev/mii/ciphyreg.h +++ b/src/add-ons/kernel/drivers/network/via_rhine/dev/mii/ciphyreg.h @@ -29,7 +29,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD$ + * $FreeBSD: releng/11.1/sys/dev/mii/ciphyreg.h 220938 2011-04-22 09:22:27Z marius $ */ #ifndef _DEV_MII_CIPHYREG_H_ diff --git a/src/add-ons/kernel/drivers/network/via_rhine/dev/mii/ukphy.c b/src/add-ons/kernel/drivers/network/via_rhine/dev/mii/ukphy.c index 9d52eb580c..a4004afdb5 100644 --- a/src/add-ons/kernel/drivers/network/via_rhine/dev/mii/ukphy.c +++ b/src/add-ons/kernel/drivers/network/via_rhine/dev/mii/ukphy.c @@ -55,7 +55,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: releng/11.1/sys/dev/mii/ukphy.c 257184 2013-10-26 18:40:17Z glebius $"); /* * driver for generic unknown PHYs @@ -140,12 +140,6 @@ ukphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) break; case MII_MEDIACHG: - /* - * If the interface is not up, don't do anything. - */ - if ((mii->mii_ifp->if_flags & IFF_UP) == 0) - break; - mii_phy_setmedia(sc); break; diff --git a/src/add-ons/kernel/drivers/network/via_rhine/dev/mii/ukphy_subr.c b/src/add-ons/kernel/drivers/network/via_rhine/dev/mii/ukphy_subr.c index 5f2f6341ba..f78b4e5e3b 100644 --- a/src/add-ons/kernel/drivers/network/via_rhine/dev/mii/ukphy_subr.c +++ b/src/add-ons/kernel/drivers/network/via_rhine/dev/mii/ukphy_subr.c @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: releng/11.1/sys/dev/mii/ukphy_subr.c 215297 2010-11-14 13:26:10Z marius $"); /* * Subroutines shared by the ukphy driver and other PHY drivers. diff --git a/src/add-ons/kernel/drivers/network/via_rhine/dev/vr/Jamfile b/src/add-ons/kernel/drivers/network/via_rhine/dev/vr/Jamfile deleted file mode 100644 index d755d10d2d..0000000000 --- a/src/add-ons/kernel/drivers/network/via_rhine/dev/vr/Jamfile +++ /dev/null @@ -1,16 +0,0 @@ -SubDir HAIKU_TOP src add-ons kernel drivers network via_rhine dev vr ; - -UseHeaders [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) ] : true ; -UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_network compat ] : true ; - -UsePrivateHeaders net system ; -UsePrivateKernelHeaders ; - -SubDirCcFlags [ FDefines _KERNEL=1 FBSD_DRIVER=1 ] ; - -KernelAddon via_rhine : - if_vr.c - glue.c - : libfreebsd_network.a via_rhine_mii.a - ; - diff --git a/src/add-ons/kernel/drivers/network/via_rhine/dev/vr/if_vr.c b/src/add-ons/kernel/drivers/network/via_rhine/dev/vr/if_vr.c index 2ab34e219f..3bda546a68 100644 --- a/src/add-ons/kernel/drivers/network/via_rhine/dev/vr/if_vr.c +++ b/src/add-ons/kernel/drivers/network/via_rhine/dev/vr/if_vr.c @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD$"); +__FBSDID("$FreeBSD: releng/11.1/sys/dev/vr/if_vr.c 296272 2016-03-01 17:47:32Z jhb $"); /* * VIA Rhine fast ethernet PCI NIC driver @@ -80,6 +80,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -165,7 +166,8 @@ static void vr_txeof(struct vr_softc *); static void vr_tick(void *); static int vr_error(struct vr_softc *, uint16_t); static void vr_tx_underrun(struct vr_softc *); -static void vr_intr(void *); +static int vr_intr(void *); +static void vr_int_task(void *, int); static void vr_start(struct ifnet *); static void vr_start_locked(struct ifnet *); static int vr_encap(struct vr_softc *, struct mbuf **); @@ -236,31 +238,6 @@ static devclass_t vr_devclass; DRIVER_MODULE(vr, pci, vr_driver, vr_devclass, 0, 0); DRIVER_MODULE(miibus, vr, miibus_driver, miibus_devclass, 0, 0); - -#ifdef __HAIKU__ -int -__haiku_disable_interrupts(device_t dev) -{ - struct vr_softc *sc = device_get_softc(dev); - - if (CSR_READ_2(sc, VR_ISR) == 0) - return 0; - - CSR_WRITE_2(sc, VR_IMR, 0x0000); - return 1; -} - - -void -__haiku_reenable_interrupts(device_t dev) -{ - struct vr_softc *sc = device_get_softc(dev); - - CSR_WRITE_2(sc, VR_IMR, VR_INTRS); -} -#endif /* __HAIKU__ */ - - static int vr_miibus_readreg(device_t dev, int phy, int reg) { @@ -683,6 +660,8 @@ vr_attach(device_t dev) ifp->if_snd.ifq_maxlen = VR_TX_RING_CNT - 1; IFQ_SET_READY(&ifp->if_snd); + TASK_INIT(&sc->vr_inttask, 0, vr_int_task, sc); + /* Configure Tx FIFO threshold. */ sc->vr_txthresh = VR_TXTHRESH_MIN; if (sc->vr_revid < REV_ID_VT6105_A0) { @@ -805,11 +784,11 @@ vr_attach(device_t dev) * Must appear after the call to ether_ifattach() because * ether_ifattach() sets ifi_hdrlen to the default value. */ - ifp->if_data.ifi_hdrlen = sizeof(struct ether_vlan_header); + ifp->if_hdrlen = sizeof(struct ether_vlan_header); /* Hook interrupt last to avoid having to lock softc. */ error = bus_setup_intr(dev, sc->vr_irq, INTR_TYPE_NET | INTR_MPSAFE, - NULL, vr_intr, sc, &sc->vr_intrhand); + vr_intr, NULL, sc, &sc->vr_intrhand); if (error) { device_printf(dev, "couldn't set up irq\n"); @@ -851,6 +830,7 @@ vr_detach(device_t dev) vr_stop(sc); VR_UNLOCK(sc); callout_drain(&sc->vr_stat_callout); + taskqueue_drain(taskqueue_fast, &sc->vr_inttask); ether_ifdetach(ifp); } if (sc->vr_miibus) @@ -1080,31 +1060,29 @@ vr_dma_free(struct vr_softc *sc) /* Tx ring. */ if (sc->vr_cdata.vr_tx_ring_tag) { - if (sc->vr_cdata.vr_tx_ring_map) + if (sc->vr_rdata.vr_tx_ring_paddr) bus_dmamap_unload(sc->vr_cdata.vr_tx_ring_tag, sc->vr_cdata.vr_tx_ring_map); - if (sc->vr_cdata.vr_tx_ring_map && - sc->vr_rdata.vr_tx_ring) + if (sc->vr_rdata.vr_tx_ring) bus_dmamem_free(sc->vr_cdata.vr_tx_ring_tag, sc->vr_rdata.vr_tx_ring, sc->vr_cdata.vr_tx_ring_map); sc->vr_rdata.vr_tx_ring = NULL; - sc->vr_cdata.vr_tx_ring_map = NULL; + sc->vr_rdata.vr_tx_ring_paddr = 0; bus_dma_tag_destroy(sc->vr_cdata.vr_tx_ring_tag); sc->vr_cdata.vr_tx_ring_tag = NULL; } /* Rx ring. */ if (sc->vr_cdata.vr_rx_ring_tag) { - if (sc->vr_cdata.vr_rx_ring_map) + if (sc->vr_rdata.vr_rx_ring_paddr) bus_dmamap_unload(sc->vr_cdata.vr_rx_ring_tag, sc->vr_cdata.vr_rx_ring_map); - if (sc->vr_cdata.vr_rx_ring_map && - sc->vr_rdata.vr_rx_ring) + if (sc->vr_rdata.vr_rx_ring) bus_dmamem_free(sc->vr_cdata.vr_rx_ring_tag, sc->vr_rdata.vr_rx_ring, sc->vr_cdata.vr_rx_ring_map); sc->vr_rdata.vr_rx_ring = NULL; - sc->vr_cdata.vr_rx_ring_map = NULL; + sc->vr_rdata.vr_rx_ring_paddr = 0; bus_dma_tag_destroy(sc->vr_cdata.vr_rx_ring_tag); sc->vr_cdata.vr_rx_ring_tag = NULL; } @@ -1347,7 +1325,7 @@ vr_rxeof(struct vr_softc *sc) if ((rxstat & VR_RXSTAT_RX_OK) == 0 || (rxstat & (VR_RXSTAT_FIRSTFRAG | VR_RXSTAT_LASTFRAG)) != (VR_RXSTAT_FIRSTFRAG | VR_RXSTAT_LASTFRAG)) { - ifp->if_ierrors++; + if_inc_counter(ifp, IFCOUNTER_IERRORS, 1); sc->vr_stat.rx_errors++; if (rxstat & VR_RXSTAT_CRCERR) sc->vr_stat.rx_crc_errors++; @@ -1370,7 +1348,7 @@ vr_rxeof(struct vr_softc *sc) } if (vr_newbuf(sc, cons) != 0) { - ifp->if_iqdrops++; + if_inc_counter(ifp, IFCOUNTER_IQDROPS, 1); sc->vr_stat.rx_errors++; sc->vr_stat.rx_no_mbufs++; vr_discard_rxbuf(rxd); @@ -1398,7 +1376,7 @@ vr_rxeof(struct vr_softc *sc) vr_fixup_rx(m); #endif m->m_pkthdr.rcvif = ifp; - ifp->if_ipackets++; + if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1); sc->vr_stat.rx_ok++; if ((ifp->if_capenable & IFCAP_RXCSUM) != 0 && (rxstat & VR_RXSTAT_FRAG) == 0 && @@ -1488,7 +1466,7 @@ vr_txeof(struct vr_softc *sc) __func__)); if ((txstat & VR_TXSTAT_ERRSUM) != 0) { - ifp->if_oerrors++; + if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); sc->vr_stat.tx_errors++; if ((txstat & VR_TXSTAT_ABRT) != 0) { /* Give up and restart Tx. */ @@ -1526,28 +1504,28 @@ vr_txeof(struct vr_softc *sc) return; } if ((txstat & VR_TXSTAT_DEFER) != 0) { - ifp->if_collisions++; + if_inc_counter(ifp, IFCOUNTER_COLLISIONS, 1); sc->vr_stat.tx_collisions++; } if ((txstat & VR_TXSTAT_LATECOLL) != 0) { - ifp->if_collisions++; + if_inc_counter(ifp, IFCOUNTER_COLLISIONS, 1); sc->vr_stat.tx_late_collisions++; } } else { sc->vr_stat.tx_ok++; - ifp->if_opackets++; + if_inc_counter(ifp, IFCOUNTER_OPACKETS, 1); } bus_dmamap_sync(sc->vr_cdata.vr_tx_tag, txd->tx_dmamap, BUS_DMASYNC_POSTWRITE); bus_dmamap_unload(sc->vr_cdata.vr_tx_tag, txd->tx_dmamap); if (sc->vr_revid < REV_ID_VT3071_A) { - ifp->if_collisions += - (txstat & VR_TXSTAT_COLLCNT) >> 3; + if_inc_counter(ifp, IFCOUNTER_COLLISIONS, + (txstat & VR_TXSTAT_COLLCNT) >> 3); sc->vr_stat.tx_collisions += (txstat & VR_TXSTAT_COLLCNT) >> 3; } else { - ifp->if_collisions += (txstat & 0x0f); + if_inc_counter(ifp, IFCOUNTER_COLLISIONS, (txstat & 0x0f)); sc->vr_stat.tx_collisions += (txstat & 0x0f); } m_freem(txd->tx_m); @@ -1678,8 +1656,28 @@ vr_tx_underrun(struct vr_softc *sc) vr_tx_start(sc); } -static void +static int vr_intr(void *arg) +{ + struct vr_softc *sc; + uint16_t status; + + sc = (struct vr_softc *)arg; + + status = CSR_READ_2(sc, VR_ISR); + if (status == 0 || status == 0xffff || (status & VR_INTRS) == 0) + return (FILTER_STRAY); + + /* Disable interrupts. */ + CSR_WRITE_2(sc, VR_IMR, 0x0000); + + taskqueue_enqueue(taskqueue_fast, &sc->vr_inttask); + + return (FILTER_HANDLED); +} + +static void +vr_int_task(void *arg, int npending) { struct vr_softc *sc; struct ifnet *ifp; @@ -1693,9 +1691,6 @@ vr_intr(void *arg) goto done_locked; status = CSR_READ_2(sc, VR_ISR); - if (status == 0 || status == 0xffff || (status & VR_INTRS) == 0) - goto done_locked; - ifp = sc->vr_ifp; #ifdef DEVICE_POLLING if ((ifp->if_capenable & IFCAP_POLLING) != 0) @@ -1710,9 +1705,6 @@ vr_intr(void *arg) goto done_locked; } - /* Disable interrupts. */ - CSR_WRITE_2(sc, VR_IMR, 0x0000); - for (; (status & VR_INTRS) != 0;) { CSR_WRITE_2(sc, VR_ISR, status); if ((status & (VR_ISR_BUSERR | VR_ISR_LINKSTAT2 | @@ -1732,15 +1724,16 @@ vr_intr(void *arg) vr_rx_start(sc); } vr_txeof(sc); + + if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) + vr_start_locked(ifp); + status = CSR_READ_2(sc, VR_ISR); } /* Re-enable interrupts. */ CSR_WRITE_2(sc, VR_IMR, VR_INTRS); - if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) - vr_start_locked(ifp); - done_locked: VR_UNLOCK(sc); } @@ -2325,13 +2318,13 @@ vr_watchdog(struct vr_softc *sc) if (bootverbose) if_printf(sc->vr_ifp, "watchdog timeout " "(missed link)\n"); - ifp->if_oerrors++; + if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); ifp->if_drv_flags &= ~IFF_DRV_RUNNING; vr_init_locked(sc); return; } - ifp->if_oerrors++; + if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); if_printf(ifp, "watchdog timeout\n"); ifp->if_drv_flags &= ~IFF_DRV_RUNNING; diff --git a/src/add-ons/kernel/drivers/network/via_rhine/dev/vr/if_vrreg.h b/src/add-ons/kernel/drivers/network/via_rhine/dev/vr/if_vrreg.h index 2445babd7a..c6029a8765 100644 --- a/src/add-ons/kernel/drivers/network/via_rhine/dev/vr/if_vrreg.h +++ b/src/add-ons/kernel/drivers/network/via_rhine/dev/vr/if_vrreg.h @@ -29,7 +29,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD$ + * $FreeBSD: releng/11.1/sys/dev/vr/if_vrreg.h 235334 2012-05-12 14:37:25Z rpaulo $ */ /* @@ -738,6 +738,7 @@ struct vr_softc { #ifdef DEVICE_POLLING int rxcycles; #endif + struct task vr_inttask; }; #define VR_LOCK(_sc) mtx_lock(&(_sc)->vr_mtx) diff --git a/src/add-ons/kernel/drivers/network/via_rhine/dev/vr/glue.c b/src/add-ons/kernel/drivers/network/via_rhine/glue.c similarity index 79% rename from src/add-ons/kernel/drivers/network/via_rhine/dev/vr/glue.c rename to src/add-ons/kernel/drivers/network/via_rhine/glue.c index 0dcad1be34..6fb8bb280c 100644 --- a/src/add-ons/kernel/drivers/network/via_rhine/dev/vr/glue.c +++ b/src/add-ons/kernel/drivers/network/via_rhine/glue.c @@ -8,7 +8,9 @@ HAIKU_FBSD_DRIVER_GLUE(via_rhine, vr, pci); -HAIKU_DRIVER_REQUIREMENTS(FBSD_TASKQUEUES | FBSD_SWI_TASKQUEUE); +HAIKU_DRIVER_REQUIREMENTS(FBSD_TASKQUEUES | FBSD_FAST_TASKQUEUE); +NO_HAIKU_CHECK_DISABLE_INTERRUPTS(); +NO_HAIKU_REENABLE_INTERRUPTS(); extern driver_t *DRIVER_MODULE_NAME(ciphy, miibus); @@ -26,4 +28,3 @@ __haiku_select_miibus_driver(device_t dev) return __haiku_probe_miibus(dev, drivers); } -