From nobody Mon Feb 6 17:54:08 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4P9YmK1scxz3n0bl; Mon, 6 Feb 2023 17:54:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4P9YmJ54vYz4Y1d; Mon, 6 Feb 2023 17:54:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1675706048; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=000G68pYwZIWWYh/jumIdsc5gO3ezezjC3+8+6VPKOU=; b=oGDiG+BOK9ULQ0b0saRaLPrzdE9SwdmUerCRVpa00w2bG8Dudoym79ZsvSHI6wm+fY6Ptb Z1EnW/rA2yDH6/pRrxavD0YvGEz/hf54TxPy4aQ1Io9xBavgSnCQJg/C0zFn/pOt1QknRt jSgIAd7pYsOAcUstieZlq8EDUSFDLB1hUWREnDoR1408rtiDOejpN+fNohbxNlJHgguVvh XbHFrZh26AFtOsp1ilqmu+romBtrwVjD1yUJUckUA261gChdnGJ5srN3fqVM3pZUi19NPg 4JjeYQPE+zERyLnLPi6991y8CvVlttdy3oGQkP96BepzpR7wFwXQGtSZWat6MA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1675706048; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=000G68pYwZIWWYh/jumIdsc5gO3ezezjC3+8+6VPKOU=; b=t4Jiyg0cvCzVC4XaqvblIu4g7voruDH8eWT8cA/TFfQk218vFdTfFwjM3onAdZoWZ1+Z80 bTKejUHhmaA1i4zxAdCufxGN0mHzgGDhNCrWPEc+hrOrZZbqfkc7nXbVQ3zvCzEHoB1Xz2 Fg6xJRSmvtoawyMyKmVRJUrvXHK7C62RJxdmxzh6/dxdz4Pg4oL+zXJ6vK+DUcw5dyzlFn at8ASO83qNaJy2fEdUg1xuMkBS/h0nkemFVclolXsX4pFip3Y13+YAMyJtC4lxwYfB7or/ Z33ijB0AjVOQXvT2L+8SFe1bFWlrvyfHQTh4d8CIe5/c+5hMXakSJWwwXLCCUA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1675706048; a=rsa-sha256; cv=none; b=qXdif4m0tDz1S0iuxXmKC2ZdkkV2mw0yMTSfvvI9yW6AV3MPhknWmZvXvv2Gxpiz5DPRCO PdO4vOr+0FONaG/BP6I5FEl8jqsp08fntviM9Z9sStstQpIUbQXMStz32TLKrSS/eolJAD Tp8u5ouKoY770BVsjxkoaSMhVVtS1g9z3Vzai2RDD4vtzjqOcwSGbi3XfLlzuH9vBN7REk 9at8Fb27uIYoHqaXwbvhVQhiNM+zXjE7D0LVjp7BR2tAYw7mPwAryK962fYAtKFce+asjJ vwRexuDjNYROak5gbCAIRuyYQqEn1OR8EMpP2b9XQpAJO7Bl1t5CKhvUVbu/cQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4P9YmJ44vTzkTL; Mon, 6 Feb 2023 17:54:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 316Hs8UQ074507; Mon, 6 Feb 2023 17:54:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 316Hs8JB074506; Mon, 6 Feb 2023 17:54:08 GMT (envelope-from git) Date: Mon, 6 Feb 2023 17:54:08 GMT Message-Id: <202302061754.316Hs8JB074506@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Justin Hibbits Subject: git: 7c509be1c6c3 - main - Mechanically convert if_et(4) to IfAPI List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhibbits X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7c509be1c6c3f689ca2d7c62731e6c5cc204f5b5 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by jhibbits: URL: https://cgit.FreeBSD.org/src/commit/?id=7c509be1c6c3f689ca2d7c62731e6c5cc204f5b5 commit 7c509be1c6c3f689ca2d7c62731e6c5cc204f5b5 Author: Justin Hibbits AuthorDate: 2022-03-01 19:58:43 +0000 Commit: Justin Hibbits 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;