The branch main has been updated by jhibbits:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=7c509be1c6c3f689ca2d7c62731e6c5cc204f5b5

commit 7c509be1c6c3f689ca2d7c62731e6c5cc204f5b5
Author:     Justin Hibbits <jhibb...@freebsd.org>
AuthorDate: 2022-03-01 19:58:43 +0000
Commit:     Justin Hibbits <jhibb...@freebsd.org>
CommitDate: 2023-02-06 17:32:08 +0000

    Mechanically convert if_et(4) to IfAPI
    
    Sponsored by:   Juniper Networks, Inc.
    Differential Revision: https://reviews.freebsd.org/D37810
---
 sys/dev/et/if_et.c    | 181 +++++++++++++++++++++++++-------------------------
 sys/dev/et/if_etvar.h |   2 +-
 2 files changed, 91 insertions(+), 92 deletions(-)

diff --git a/sys/dev/et/if_et.c b/sys/dev/et/if_et.c
index 2280ab541d87..9cce5a3ae883 100644
--- a/sys/dev/et/if_et.c
+++ b/sys/dev/et/if_et.c
@@ -99,14 +99,14 @@ static void et_miibus_statchg(device_t);
 
 static void    et_init_locked(struct et_softc *);
 static void    et_init(void *);
-static int     et_ioctl(struct ifnet *, u_long, caddr_t);
-static void    et_start_locked(struct ifnet *);
-static void    et_start(struct ifnet *);
+static int     et_ioctl(if_t, u_long, caddr_t);
+static void    et_start_locked(if_t);
+static void    et_start(if_t);
 static int     et_watchdog(struct et_softc *);
-static int     et_ifmedia_upd_locked(struct ifnet *);
-static int     et_ifmedia_upd(struct ifnet *);
-static void    et_ifmedia_sts(struct ifnet *, struct ifmediareq *);
-static uint64_t        et_get_counter(struct ifnet *, ift_counter);
+static int     et_ifmedia_upd_locked(if_t);
+static int     et_ifmedia_upd(if_t);
+static void    et_ifmedia_sts(if_t, struct ifmediareq *);
+static uint64_t        et_get_counter(if_t, ift_counter);
 
 static void    et_add_sysctls(struct et_softc *);
 static int     et_sysctl_rx_intr_npkts(SYSCTL_HANDLER_ARGS);
@@ -222,7 +222,7 @@ static int
 et_attach(device_t dev)
 {
        struct et_softc *sc;
-       struct ifnet *ifp;
+       if_t ifp;
        uint8_t eaddr[ETHER_ADDR_LEN];
        uint32_t pmcfg;
        int cap, error, msic;
@@ -321,18 +321,17 @@ et_attach(device_t dev)
        if (error)
                goto fail;
 
-       ifp->if_softc = sc;
+       if_setsoftc(ifp, sc);
        if_initname(ifp, device_get_name(dev), device_get_unit(dev));
-       ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
-       ifp->if_init = et_init;
-       ifp->if_ioctl = et_ioctl;
-       ifp->if_start = et_start;
-       ifp->if_get_counter = et_get_counter;
-       ifp->if_capabilities = IFCAP_TXCSUM | IFCAP_VLAN_MTU;
-       ifp->if_capenable = ifp->if_capabilities;
-       ifp->if_snd.ifq_drv_maxlen = ET_TX_NDESC - 1;
-       IFQ_SET_MAXLEN(&ifp->if_snd, ET_TX_NDESC - 1);
-       IFQ_SET_READY(&ifp->if_snd);
+       if_setflags(ifp, IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST);
+       if_setinitfn(ifp, et_init);
+       if_setioctlfn(ifp, et_ioctl);
+       if_setstartfn(ifp, et_start);
+       if_setgetcounterfn(ifp, et_get_counter);
+       if_setcapabilities(ifp, IFCAP_TXCSUM | IFCAP_VLAN_MTU);
+       if_setcapenable(ifp, if_getcapabilities(ifp));
+       if_setsendqlen(ifp, ET_TX_NDESC - 1);
+       if_setsendqready(ifp);
 
        et_chip_attach(sc);
 
@@ -347,7 +346,7 @@ et_attach(device_t dev)
        ether_ifattach(ifp, eaddr);
 
        /* Tell the upper layer(s) we support long frames. */
-       ifp->if_hdrlen = sizeof(struct ether_vlan_header);
+       if_setifheaderlen(ifp, sizeof(struct ether_vlan_header));
 
        error = bus_setup_intr(dev, sc->sc_irq_res, INTR_TYPE_NET | INTR_MPSAFE,
            NULL, et_intr, sc, &sc->sc_irq_handle);
@@ -505,7 +504,7 @@ et_miibus_statchg(device_t dev)
 {
        struct et_softc *sc;
        struct mii_data *mii;
-       struct ifnet *ifp;
+       if_t ifp;
        uint32_t cfg1, cfg2, ctrl;
        int i;
 
@@ -514,7 +513,7 @@ et_miibus_statchg(device_t dev)
        mii = device_get_softc(sc->sc_miibus);
        ifp = sc->ifp;
        if (mii == NULL || ifp == NULL ||
-           (ifp->if_drv_flags & IFF_DRV_RUNNING) == 0)
+           (if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0)
                return;
 
        sc->sc_flags &= ~ET_FLAG_LINK;
@@ -600,13 +599,13 @@ et_miibus_statchg(device_t dev)
 }
 
 static int
-et_ifmedia_upd_locked(struct ifnet *ifp)
+et_ifmedia_upd_locked(if_t ifp)
 {
        struct et_softc *sc;
        struct mii_data *mii;
        struct mii_softc *miisc;
 
-       sc = ifp->if_softc;
+       sc = if_getsoftc(ifp);
        mii = device_get_softc(sc->sc_miibus);
        LIST_FOREACH(miisc, &mii->mii_phys, mii_list)
                PHY_RESET(miisc);
@@ -614,12 +613,12 @@ et_ifmedia_upd_locked(struct ifnet *ifp)
 }
 
 static int
-et_ifmedia_upd(struct ifnet *ifp)
+et_ifmedia_upd(if_t ifp)
 {
        struct et_softc *sc;
        int res;
 
-       sc = ifp->if_softc;
+       sc = if_getsoftc(ifp);
        ET_LOCK(sc);
        res = et_ifmedia_upd_locked(ifp);
        ET_UNLOCK(sc);
@@ -628,14 +627,14 @@ et_ifmedia_upd(struct ifnet *ifp)
 }
 
 static void
-et_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr)
+et_ifmedia_sts(if_t ifp, struct ifmediareq *ifmr)
 {
        struct et_softc *sc;
        struct mii_data *mii;
 
-       sc = ifp->if_softc;
+       sc = if_getsoftc(ifp);
        ET_LOCK(sc);
-       if ((ifp->if_flags & IFF_UP) == 0) {
+       if ((if_getflags(ifp) & IFF_UP) == 0) {
                ET_UNLOCK(sc);
                return;
        }
@@ -650,7 +649,7 @@ et_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr)
 static void
 et_stop(struct et_softc *sc)
 {
-       struct ifnet *ifp;
+       if_t ifp;
 
        ET_LOCK_ASSERT(sc);
 
@@ -675,7 +674,7 @@ et_stop(struct et_softc *sc)
        sc->sc_flags &= ~ET_FLAG_TXRX_ENABLED;
 
        sc->watchdog_timer = 0;
-       ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE);
+       if_setdrvflagbits(ifp, 0, (IFF_DRV_RUNNING | IFF_DRV_OACTIVE));
 }
 
 static int
@@ -1177,13 +1176,13 @@ static void
 et_intr(void *xsc)
 {
        struct et_softc *sc;
-       struct ifnet *ifp;
+       if_t ifp;
        uint32_t status;
 
        sc = xsc;
        ET_LOCK(sc);
        ifp = sc->ifp;
-       if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0)
+       if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0)
                goto done;
 
        status = CSR_READ_4(sc, ET_INTR_STATUS);
@@ -1196,7 +1195,7 @@ et_intr(void *xsc)
        if (status & (ET_INTR_RXDMA_ERROR | ET_INTR_TXDMA_ERROR)) {
                device_printf(sc->dev, "DMA error(0x%08x) -- resetting\n",
                    status);
-               ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+               if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
                et_init_locked(sc);
                ET_UNLOCK(sc);
                return;
@@ -1207,9 +1206,9 @@ et_intr(void *xsc)
                et_txeof(sc);
        if (status & ET_INTR_TIMER)
                CSR_WRITE_4(sc, ET_TIMER, sc->sc_timer);
-       if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
+       if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) {
                CSR_WRITE_4(sc, ET_INTR_MASK, ~ET_INTRS);
-               if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd))
+               if (!if_sendq_empty(ifp))
                        et_start_locked(ifp);
        }
 done:
@@ -1219,13 +1218,13 @@ done:
 static void
 et_init_locked(struct et_softc *sc)
 {
-       struct ifnet *ifp;
+       if_t ifp;
        int error;
 
        ET_LOCK_ASSERT(sc);
 
        ifp = sc->ifp;
-       if (ifp->if_drv_flags & IFF_DRV_RUNNING)
+       if (if_getdrvflags(ifp) & IFF_DRV_RUNNING)
                return;
 
        et_stop(sc);
@@ -1256,8 +1255,8 @@ et_init_locked(struct et_softc *sc)
 
        CSR_WRITE_4(sc, ET_TIMER, sc->sc_timer);
 
-       ifp->if_drv_flags |= IFF_DRV_RUNNING;
-       ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
+       if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
+       if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
 
        sc->sc_flags &= ~ET_FLAG_LINK;
        et_ifmedia_upd_locked(ifp);
@@ -1280,14 +1279,14 @@ et_init(void *xsc)
 }
 
 static int
-et_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
+et_ioctl(if_t ifp, u_long cmd, caddr_t data)
 {
        struct et_softc *sc;
        struct mii_data *mii;
        struct ifreq *ifr;
        int error, mask, max_framelen;
 
-       sc = ifp->if_softc;
+       sc = if_getsoftc(ifp);
        ifr = (struct ifreq *)data;
        error = 0;
 
@@ -1295,19 +1294,19 @@ et_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
        switch (cmd) {
        case SIOCSIFFLAGS:
                ET_LOCK(sc);
-               if (ifp->if_flags & IFF_UP) {
-                       if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
-                               if ((ifp->if_flags ^ sc->sc_if_flags) &
+               if (if_getflags(ifp) & IFF_UP) {
+                       if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) {
+                               if ((if_getflags(ifp) ^ sc->sc_if_flags) &
                                (IFF_ALLMULTI | IFF_PROMISC | IFF_BROADCAST))
                                        et_setmulti(sc);
                        } else {
                                et_init_locked(sc);
                        }
                } else {
-                       if (ifp->if_drv_flags & IFF_DRV_RUNNING)
+                       if (if_getdrvflags(ifp) & IFF_DRV_RUNNING)
                                et_stop(sc);
                }
-               sc->sc_if_flags = ifp->if_flags;
+               sc->sc_if_flags = if_getflags(ifp);
                ET_UNLOCK(sc);
                break;
 
@@ -1319,7 +1318,7 @@ et_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 
        case SIOCADDMULTI:
        case SIOCDELMULTI:
-               if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
+               if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) {
                        ET_LOCK(sc);
                        et_setmulti(sc);
                        ET_UNLOCK(sc);
@@ -1341,10 +1340,10 @@ et_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
                        break;
                }
 
-               if (ifp->if_mtu != ifr->ifr_mtu) {
-                       ifp->if_mtu = ifr->ifr_mtu;
-                       if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
-                               ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+               if (if_getmtu(ifp) != ifr->ifr_mtu) {
+                       if_setmtu(ifp, ifr->ifr_mtu);
+                       if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) {
+                               if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
                                et_init_locked(sc);
                        }
                }
@@ -1353,14 +1352,14 @@ et_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 
        case SIOCSIFCAP:
                ET_LOCK(sc);
-               mask = ifr->ifr_reqcap ^ ifp->if_capenable;
+               mask = ifr->ifr_reqcap ^ if_getcapenable(ifp);
                if ((mask & IFCAP_TXCSUM) != 0 &&
-                   (IFCAP_TXCSUM & ifp->if_capabilities) != 0) {
-                       ifp->if_capenable ^= IFCAP_TXCSUM;
-                       if ((IFCAP_TXCSUM & ifp->if_capenable) != 0)
-                               ifp->if_hwassist |= ET_CSUM_FEATURES;
+                   (IFCAP_TXCSUM & if_getcapabilities(ifp)) != 0) {
+                       if_togglecapenable(ifp, IFCAP_TXCSUM);
+                       if ((IFCAP_TXCSUM & if_getcapenable(ifp)) != 0)
+                               if_sethwassistbits(ifp, ET_CSUM_FEATURES, 0);
                        else
-                               ifp->if_hwassist &= ~ET_CSUM_FEATURES;
+                               if_sethwassistbits(ifp, 0, ET_CSUM_FEATURES);
                }
                ET_UNLOCK(sc);
                break;
@@ -1373,7 +1372,7 @@ et_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 }
 
 static void
-et_start_locked(struct ifnet *ifp)
+et_start_locked(if_t ifp)
 {
        struct et_softc *sc;
        struct mbuf *m_head = NULL;
@@ -1382,10 +1381,10 @@ et_start_locked(struct ifnet *ifp)
        uint32_t tx_ready_pos;
        int enq;
 
-       sc = ifp->if_softc;
+       sc = if_getsoftc(ifp);
        ET_LOCK_ASSERT(sc);
 
-       if ((ifp->if_drv_flags & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) !=
+       if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) !=
            IFF_DRV_RUNNING ||
            (sc->sc_flags & (ET_FLAG_LINK | ET_FLAG_TXRX_ENABLED)) !=
            (ET_FLAG_LINK | ET_FLAG_TXRX_ENABLED))
@@ -1403,13 +1402,13 @@ et_start_locked(struct ifnet *ifp)
        if (tbd->tbd_used > (ET_TX_NDESC * 2) / 3)
                et_txeof(sc);
 
-       for (enq = 0; !IFQ_DRV_IS_EMPTY(&ifp->if_snd); ) {
+       for (enq = 0; !if_sendq_empty(ifp); ) {
                if (tbd->tbd_used + ET_NSEG_SPARE >= ET_TX_NDESC) {
-                       ifp->if_drv_flags |= IFF_DRV_OACTIVE;
+                       if_setdrvflagbits(ifp, IFF_DRV_OACTIVE, 0);
                        break;
                }
 
-               IFQ_DRV_DEQUEUE(&ifp->if_snd, m_head);
+               m_head = if_dequeue(ifp);
                if (m_head == NULL)
                        break;
 
@@ -1418,9 +1417,9 @@ et_start_locked(struct ifnet *ifp)
                                if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
                                break;
                        }
-                       IFQ_DRV_PREPEND(&ifp->if_snd, m_head);
+                       if_sendq_prepend(ifp, m_head);
                        if (tbd->tbd_used > 0)
-                               ifp->if_drv_flags |= IFF_DRV_OACTIVE;
+                               if_setdrvflagbits(ifp, IFF_DRV_OACTIVE, 0);
                        break;
                }
                enq++;
@@ -1441,11 +1440,11 @@ et_start_locked(struct ifnet *ifp)
 }
 
 static void
-et_start(struct ifnet *ifp)
+et_start(if_t ifp)
 {
        struct et_softc *sc;
 
-       sc = ifp->if_softc;
+       sc = if_getsoftc(ifp);
        ET_LOCK(sc);
        et_start_locked(ifp);
        ET_UNLOCK(sc);
@@ -1468,7 +1467,7 @@ et_watchdog(struct et_softc *sc)
            status);
 
        if_inc_counter(sc->ifp, IFCOUNTER_OERRORS, 1);
-       sc->ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+       if_setdrvflagbits(sc->ifp, 0, IFF_DRV_RUNNING);
        et_init_locked(sc);
        return (EJUSTRETURN);
 }
@@ -1581,7 +1580,7 @@ et_hash_maddr(void *arg, struct sockaddr_dl *sdl, u_int 
cnt)
 static void
 et_setmulti(struct et_softc *sc)
 {
-       struct ifnet *ifp;
+       if_t ifp;
        uint32_t hash[4] = { 0, 0, 0, 0 };
        uint32_t rxmac_ctrl, pktfilt;
        int i, count;
@@ -1593,7 +1592,7 @@ et_setmulti(struct et_softc *sc)
        rxmac_ctrl = CSR_READ_4(sc, ET_RXMAC_CTRL);
 
        pktfilt &= ~(ET_PKTFILT_BCAST | ET_PKTFILT_MCAST | ET_PKTFILT_UCAST);
-       if (ifp->if_flags & (IFF_PROMISC | IFF_ALLMULTI)) {
+       if (if_getflags(ifp) & (IFF_PROMISC | IFF_ALLMULTI)) {
                rxmac_ctrl |= ET_RXMAC_CTRL_NO_PKTFILT;
                goto back;
        }
@@ -1614,7 +1613,7 @@ back:
 static int
 et_chip_init(struct et_softc *sc)
 {
-       struct ifnet *ifp;
+       if_t ifp;
        uint32_t rxq_end;
        int error, frame_len, rxmem_size;
 
@@ -1623,7 +1622,7 @@ et_chip_init(struct et_softc *sc)
         * Split 16Kbytes internal memory between TX and RX
         * according to frame length.
         */
-       frame_len = ET_FRAMELEN(ifp->if_mtu);
+       frame_len = ET_FRAMELEN(if_getmtu(ifp));
        if (frame_len < 2048) {
                rxmem_size = ET_MEM_RXSIZE_DEFAULT;
        } else if (frame_len <= ET_RXMAC_CUT_THRU_FRMLEN) {
@@ -1842,7 +1841,7 @@ et_init_txdma(struct et_softc *sc)
 static void
 et_init_mac(struct et_softc *sc)
 {
-       struct ifnet *ifp;
+       if_t ifp;
        const uint8_t *eaddr;
        uint32_t val;
 
@@ -1880,14 +1879,14 @@ et_init_mac(struct et_softc *sc)
         * Set MAC address
         */
        ifp = sc->ifp;
-       eaddr = IF_LLADDR(ifp);
+       eaddr = if_getlladdr(ifp);
        val = eaddr[2] | (eaddr[3] << 8) | (eaddr[4] << 16) | (eaddr[5] << 24);
        CSR_WRITE_4(sc, ET_MAC_ADDR1, val);
        val = (eaddr[0] << 16) | (eaddr[1] << 24);
        CSR_WRITE_4(sc, ET_MAC_ADDR2, val);
 
        /* Set max frame length */
-       CSR_WRITE_4(sc, ET_MAX_FRMLEN, ET_FRAMELEN(ifp->if_mtu));
+       CSR_WRITE_4(sc, ET_MAX_FRMLEN, ET_FRAMELEN(if_getmtu(ifp)));
 
        /* Bring MAC out of reset state */
        CSR_WRITE_4(sc, ET_MAC_CFG1, 0);
@@ -1896,7 +1895,7 @@ et_init_mac(struct et_softc *sc)
 static void
 et_init_rxmac(struct et_softc *sc)
 {
-       struct ifnet *ifp;
+       if_t ifp;
        const uint8_t *eaddr;
        uint32_t val;
        int i;
@@ -1916,7 +1915,7 @@ et_init_rxmac(struct et_softc *sc)
         * Set WOL source address.  XXX is this necessary?
         */
        ifp = sc->ifp;
-       eaddr = IF_LLADDR(ifp);
+       eaddr = if_getlladdr(ifp);
        val = (eaddr[2] << 24) | (eaddr[3] << 16) | (eaddr[4] << 8) | eaddr[5];
        CSR_WRITE_4(sc, ET_WOL_SA_LO, val);
        val = (eaddr[0] << 8) | eaddr[1];
@@ -1930,7 +1929,7 @@ et_init_rxmac(struct et_softc *sc)
        CSR_WRITE_4(sc, ET_UCAST_FILTADDR2, 0);
        CSR_WRITE_4(sc, ET_UCAST_FILTADDR3, 0);
 
-       if (ET_FRAMELEN(ifp->if_mtu) > ET_RXMAC_CUT_THRU_FRMLEN) {
+       if (ET_FRAMELEN(if_getmtu(ifp)) > ET_RXMAC_CUT_THRU_FRMLEN) {
                /*
                 * In order to transmit jumbo packets greater than
                 * ET_RXMAC_CUT_THRU_FRMLEN bytes, the FIFO between
@@ -2036,7 +2035,7 @@ et_rxeof(struct et_softc *sc)
        struct et_rxbuf_data *rbd;
        struct et_rxdesc_ring *rx_ring;
        struct et_rxstat *st;
-       struct ifnet *ifp;
+       if_t ifp;
        struct mbuf *m;
        uint32_t rxstat_pos, rxring_pos;
        uint32_t rxst_info1, rxst_info2, rxs_stat_ring;
@@ -2065,7 +2064,7 @@ et_rxeof(struct et_softc *sc)
 
        while (rxst_index != rxst_ring->rsr_index ||
            rxst_wrap != rxst_ring->rsr_wrap) {
-               if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0)
+               if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0)
                        break;
 
                MPASS(rxst_ring->rsr_index < ET_RX_NSTAT);
@@ -2117,7 +2116,7 @@ et_rxeof(struct et_softc *sc)
                                m->m_pkthdr.len = m->m_len = buflen;
                                m->m_pkthdr.rcvif = ifp;
                                ET_UNLOCK(sc);
-                               ifp->if_input(ifp, m);
+                               if_input(ifp, m);
                                ET_LOCK(sc);
                        }
                }
@@ -2249,7 +2248,7 @@ et_txeof(struct et_softc *sc)
        struct et_txdesc_ring *tx_ring;
        struct et_txbuf_data *tbd;
        struct et_txbuf *tb;
-       struct ifnet *ifp;
+       if_t ifp;
        uint32_t tx_done;
        int end, wrap;
 
@@ -2295,7 +2294,7 @@ et_txeof(struct et_softc *sc)
        if (tbd->tbd_used == 0)
                sc->watchdog_timer = 0;
        if (tbd->tbd_used + ET_NSEG_SPARE < ET_TX_NDESC)
-               ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
+               if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
 }
 
 static void
@@ -2567,7 +2566,7 @@ static int
 et_sysctl_rx_intr_npkts(SYSCTL_HANDLER_ARGS)
 {
        struct et_softc *sc;
-       struct ifnet *ifp;
+       if_t ifp;
        int error, v;
 
        sc = arg1;
@@ -2582,7 +2581,7 @@ et_sysctl_rx_intr_npkts(SYSCTL_HANDLER_ARGS)
        }
 
        if (sc->sc_rx_intr_npkts != v) {
-               if (ifp->if_drv_flags & IFF_DRV_RUNNING)
+               if (if_getdrvflags(ifp) & IFF_DRV_RUNNING)
                        CSR_WRITE_4(sc, ET_RX_INTR_NPKTS, v);
                sc->sc_rx_intr_npkts = v;
        }
@@ -2594,7 +2593,7 @@ static int
 et_sysctl_rx_intr_delay(SYSCTL_HANDLER_ARGS)
 {
        struct et_softc *sc;
-       struct ifnet *ifp;
+       if_t ifp;
        int error, v;
 
        sc = arg1;
@@ -2609,7 +2608,7 @@ et_sysctl_rx_intr_delay(SYSCTL_HANDLER_ARGS)
        }
 
        if (sc->sc_rx_intr_delay != v) {
-               if (ifp->if_drv_flags & IFF_DRV_RUNNING)
+               if (if_getdrvflags(ifp) & IFF_DRV_RUNNING)
                        CSR_WRITE_4(sc, ET_RX_INTR_DELAY, v);
                sc->sc_rx_intr_delay = v;
        }
@@ -2672,7 +2671,7 @@ et_stats_update(struct et_softc *sc)
 }
 
 static uint64_t
-et_get_counter(struct ifnet *ifp, ift_counter cnt)
+et_get_counter(if_t ifp, ift_counter cnt)
 {
        struct et_softc *sc;
        struct et_hw_stats *stats;
@@ -2708,7 +2707,7 @@ et_suspend(device_t dev)
 
        sc = device_get_softc(dev);
        ET_LOCK(sc);
-       if ((sc->ifp->if_drv_flags & IFF_DRV_RUNNING) != 0)
+       if ((if_getdrvflags(sc->ifp) & IFF_DRV_RUNNING) != 0)
                et_stop(sc);
        /* Diable all clocks and put PHY into COMA. */
        pmcfg = CSR_READ_4(sc, ET_PM);
@@ -2733,7 +2732,7 @@ et_resume(device_t dev)
        if ((sc->sc_flags & ET_FLAG_FASTETHER) == 0)
                pmcfg |= EM_PM_GIGEPHY_ENB;
        CSR_WRITE_4(sc, ET_PM, pmcfg);
-       if ((sc->ifp->if_flags & IFF_UP) != 0)
+       if ((if_getflags(sc->ifp) & IFF_UP) != 0)
                et_init_locked(sc);
        ET_UNLOCK(sc);
        return (0);
diff --git a/sys/dev/et/if_etvar.h b/sys/dev/et/if_etvar.h
index 461324f2f0f1..485654259c13 100644
--- a/sys/dev/et/if_etvar.h
+++ b/sys/dev/et/if_etvar.h
@@ -284,7 +284,7 @@ struct et_hw_stats {
 };
 
 struct et_softc {
-       struct ifnet            *ifp;
+       if_t                    ifp;
        device_t                dev;
        struct mtx              sc_mtx;
        device_t                sc_miibus;

Reply via email to