diff --git a/sys/dev/dpaa2/dpaa2_ni.c b/sys/dev/dpaa2/dpaa2_ni.c --- a/sys/dev/dpaa2/dpaa2_ni.c +++ b/sys/dev/dpaa2/dpaa2_ni.c @@ -458,10 +458,10 @@ /* Network interface routines */ static void dpaa2_ni_init(void *); -static int dpaa2_ni_transmit(struct ifnet *, struct mbuf *); -static void dpaa2_ni_qflush(struct ifnet *); -static int dpaa2_ni_ioctl(struct ifnet *, u_long, caddr_t); -static int dpaa2_ni_update_mac_filters(struct ifnet *); +static int dpaa2_ni_transmit(if_t , struct mbuf *); +static void dpaa2_ni_qflush(if_t ); +static int dpaa2_ni_ioctl(if_t , u_long, caddr_t); +static int dpaa2_ni_update_mac_filters(if_t ); static u_int dpaa2_ni_add_maddr(void *, struct sockaddr_dl *, u_int); /* Interrupt handlers */ @@ -469,8 +469,8 @@ /* MII handlers */ static void dpaa2_ni_miibus_statchg(device_t); -static int dpaa2_ni_media_change(struct ifnet *); -static void dpaa2_ni_media_status(struct ifnet *, struct ifmediareq *); +static int dpaa2_ni_media_change(if_t ); +static void dpaa2_ni_media_status(if_t , struct ifmediareq *); static void dpaa2_ni_media_tick(void *); /* DMA mapping callback */ @@ -515,7 +515,7 @@ struct dpaa2_devinfo *rcinfo = device_get_ivars(pdev); struct dpaa2_devinfo *dinfo = device_get_ivars(dev); struct dpaa2_devinfo *mcp_dinfo; - struct ifnet *ifp; + if_t ifp; char tq_name[32]; int error; @@ -583,15 +583,15 @@ sc->ifp = ifp; if_initname(ifp, DPAA2_NI_IFNAME, device_get_unit(sc->dev)); - ifp->if_softc = sc; - ifp->if_flags = IFF_SIMPLEX | IFF_MULTICAST | IFF_BROADCAST; - ifp->if_init = dpaa2_ni_init; - ifp->if_ioctl = dpaa2_ni_ioctl; - ifp->if_transmit = dpaa2_ni_transmit; - ifp->if_qflush = dpaa2_ni_qflush; + if_setsoftc(ifp, sc); + if_setflags(ifp, IFF_SIMPLEX | IFF_MULTICAST | IFF_BROADCAST); + if_setinitfn(ifp, dpaa2_ni_init); + if_setioctlfn(ifp, dpaa2_ni_ioctl); + if_settransmitfn(ifp, dpaa2_ni_transmit); + if_setqflushfn(ifp, dpaa2_ni_qflush); - ifp->if_capabilities = IFCAP_VLAN_MTU | IFCAP_HWCSUM | IFCAP_JUMBO_MTU; - ifp->if_capenable = ifp->if_capabilities; + if_setcapabilities(ifp, IFCAP_VLAN_MTU | IFCAP_HWCSUM | IFCAP_JUMBO_MTU); + if_setcapenable(ifp, if_getcapabilities(ifp)); /* Allocate a command to send to MC hardware. */ error = dpaa2_mcp_init_command(&sc->cmd, DPAA2_CMD_DEF); @@ -681,7 +681,7 @@ static void dpaa2_ni_fixed_media_status(if_t ifp, struct ifmediareq* ifmr) { - struct dpaa2_ni_softc *sc = ifp->if_softc; + struct dpaa2_ni_softc *sc = if_getsoftc(ifp); DPNI_LOCK(sc); ifmr->ifm_count = 0; @@ -695,7 +695,7 @@ * certain things requiring a link event (e.g async DHCP client) from * devd do not happen. */ - if (ifp->if_link_state == LINK_STATE_UNKNOWN) { + if (if_getlinkstate(ifp) == LINK_STATE_UNKNOWN) { if_link_state_change(ifp, LINK_STATE_UP); } @@ -1620,8 +1620,8 @@ static int dpaa2_ni_setup_if_caps(struct dpaa2_ni_softc *sc) { - const bool en_rxcsum = sc->ifp->if_capenable & IFCAP_RXCSUM; - const bool en_txcsum = sc->ifp->if_capenable & IFCAP_TXCSUM; + const bool en_rxcsum = if_getcapenable(sc->ifp) & IFCAP_RXCSUM; + const bool en_txcsum = if_getcapenable(sc->ifp) & IFCAP_TXCSUM; device_t dev = sc->dev; device_t child = dev; int error; @@ -1667,8 +1667,8 @@ static int dpaa2_ni_setup_if_flags(struct dpaa2_ni_softc *sc) { - const bool en_promisc = sc->ifp->if_flags & IFF_PROMISC; - const bool en_allmulti = sc->ifp->if_flags & IFF_ALLMULTI; + const bool en_promisc = if_getflags(sc->ifp) & IFF_PROMISC; + const bool en_allmulti = if_getflags(sc->ifp) & IFF_ALLMULTI; device_t dev = sc->dev; device_t child = dev; int error; @@ -2134,7 +2134,7 @@ { device_t child = dev; struct dpaa2_ni_softc *sc = device_get_softc(dev); - struct ifnet *ifp = sc->ifp; + if_t ifp = sc->ifp; struct ether_addr rnd_mac_addr; uint8_t mac_addr[ETHER_ADDR_LEN]; uint8_t dpni_mac_addr[ETHER_ADDR_LEN]; @@ -2263,9 +2263,9 @@ * @brief Callback function to process media change request. */ static int -dpaa2_ni_media_change(struct ifnet *ifp) +dpaa2_ni_media_change(if_t ifp) { - struct dpaa2_ni_softc *sc = ifp->if_softc; + struct dpaa2_ni_softc *sc = if_getsoftc(ifp); DPNI_LOCK(sc); if (sc->mii) { @@ -2284,9 +2284,9 @@ * @brief Callback function to process media status request. */ static void -dpaa2_ni_media_status(struct ifnet *ifp, struct ifmediareq *ifmr) +dpaa2_ni_media_status(if_t ifp, struct ifmediareq *ifmr) { - struct dpaa2_ni_softc *sc = ifp->if_softc; + struct dpaa2_ni_softc *sc = if_getsoftc(ifp); DPNI_LOCK(sc); if (sc->mii) { @@ -2323,13 +2323,13 @@ dpaa2_ni_init(void *arg) { struct dpaa2_ni_softc *sc = (struct dpaa2_ni_softc *) arg; - struct ifnet *ifp = sc->ifp; + if_t ifp = sc->ifp; device_t dev = sc->dev; device_t child = dev; int error; DPNI_LOCK(sc); - if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0) { + if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0) { DPNI_UNLOCK(sc); return; } @@ -2346,8 +2346,7 @@ mii_mediachg(sc->mii); callout_reset(&sc->mii_callout, hz, dpaa2_ni_media_tick, sc); - ifp->if_drv_flags |= IFF_DRV_RUNNING; - ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; + if_setdrvflagbits(ifp, IFF_DRV_RUNNING, IFF_DRV_OACTIVE); DPNI_UNLOCK(sc); /* Force link-state update to initilize things. */ @@ -2357,16 +2356,16 @@ } static int -dpaa2_ni_transmit(struct ifnet *ifp, struct mbuf *m) +dpaa2_ni_transmit(if_t ifp, struct mbuf *m) { - struct dpaa2_ni_softc *sc = ifp->if_softc; + struct dpaa2_ni_softc *sc = if_getsoftc(ifp); struct dpaa2_ni_channel *chan; struct dpaa2_ni_tx_ring *tx; uint32_t fqid; boolean_t found = false; int chan_n = 0; - if (__predict_false(!(ifp->if_drv_flags & IFF_DRV_RUNNING))) + if (__predict_false(!(if_getdrvflags(ifp) & IFF_DRV_RUNNING))) return (0); if (M_HASHTYPE_GET(m) != M_HASHTYPE_NONE) { @@ -2395,16 +2394,16 @@ } static void -dpaa2_ni_qflush(struct ifnet *ifp) +dpaa2_ni_qflush(if_t ifp) { /* TODO: Find a way to drain Tx queues in QBMan. */ if_qflush(ifp); } static int -dpaa2_ni_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) +dpaa2_ni_ioctl(if_t ifp, u_long cmd, caddr_t data) { - struct dpaa2_ni_softc *sc = ifp->if_softc; + struct dpaa2_ni_softc *sc = if_getsoftc(ifp); struct ifreq *ifr = (struct ifreq *) data; device_t dev, child; uint32_t changed = 0; @@ -2420,7 +2419,7 @@ DPNI_UNLOCK(sc); return (EINVAL); } - ifp->if_mtu = mtu; + if_setmtu(ifp, mtu); DPNI_UNLOCK(sc); /* Update maximum frame length. */ @@ -2433,12 +2432,12 @@ } break; case SIOCSIFCAP: - changed = ifp->if_capenable ^ ifr->ifr_reqcap; + changed = if_getcapenable(ifp) ^ ifr->ifr_reqcap; if (changed & IFCAP_HWCSUM) { if ((ifr->ifr_reqcap & changed) & IFCAP_HWCSUM) - ifp->if_capenable |= IFCAP_HWCSUM; + if_setcapenablebit(ifp, IFCAP_HWCSUM, 0); else - ifp->if_capenable &= ~IFCAP_HWCSUM; + if_setcapenablebit(ifp, 0, IFCAP_HWCSUM); } rc = dpaa2_ni_setup_if_caps(sc); if (rc) { @@ -2449,9 +2448,9 @@ break; case SIOCSIFFLAGS: DPNI_LOCK(sc); - if (ifp->if_flags & IFF_UP) { - if (ifp->if_drv_flags & IFF_DRV_RUNNING) { - changed = ifp->if_flags ^ sc->if_flags; + if (if_getflags(ifp) & IFF_UP) { + if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) { + changed = if_getflags(ifp) ^ sc->if_flags; if (changed & IFF_PROMISC || changed & IFF_ALLMULTI) { rc = dpaa2_ni_setup_if_flags(sc); @@ -2461,17 +2460,17 @@ dpaa2_ni_init(sc); DPNI_LOCK(sc); } - } else if (ifp->if_drv_flags & IFF_DRV_RUNNING) { + } else if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) { /* dpni_if_stop(sc); */ } - sc->if_flags = ifp->if_flags; + sc->if_flags = if_getflags(ifp); DPNI_UNLOCK(sc); break; case SIOCADDMULTI: case SIOCDELMULTI: DPNI_LOCK(sc); - if (ifp->if_drv_flags & IFF_DRV_RUNNING) { + if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) { DPNI_UNLOCK(sc); rc = dpaa2_ni_update_mac_filters(ifp); if (rc) @@ -2497,9 +2496,9 @@ } static int -dpaa2_ni_update_mac_filters(struct ifnet *ifp) +dpaa2_ni_update_mac_filters(if_t ifp) { - struct dpaa2_ni_softc *sc = ifp->if_softc; + struct dpaa2_ni_softc *sc = if_getsoftc(ifp); struct dpaa2_ni_mcaddr_ctx ctx; device_t dev, child; int error; @@ -2528,7 +2527,7 @@ dpaa2_ni_add_maddr(void *arg, struct sockaddr_dl *sdl, u_int cnt) { struct dpaa2_ni_mcaddr_ctx *ctx = arg; - struct dpaa2_ni_softc *sc = ctx->ifp->if_softc; + struct dpaa2_ni_softc *sc = if_getsoftc(ctx->ifp); device_t dev, child; dev = child = sc->dev; @@ -2546,7 +2545,7 @@ /* Enable multicast promiscuous mode. */ DPNI_LOCK(sc); - ctx->ifp->if_flags |= IFF_ALLMULTI; + if_setflagbits(ctx->ifp, IFF_ALLMULTI, 0); sc->if_flags |= IFF_ALLMULTI; ctx->error = dpaa2_ni_setup_if_flags(sc); DPNI_UNLOCK(sc); @@ -2823,7 +2822,7 @@ struct dpaa2_ni_softc *sc = device_get_softc(chan->ni_dev); struct dpaa2_bp_softc *bpsc; struct dpaa2_buf *buf; - struct ifnet *ifp = sc->ifp; + if_t ifp = sc->ifp; struct mbuf *m; device_t bp_dev; bus_addr_t paddr = (bus_addr_t) fd->addr; @@ -2888,7 +2887,7 @@ m->m_pkthdr.flowid = fq->fqid; M_HASHTYPE_SET(m, M_HASHTYPE_OPAQUE); - (*ifp->if_input)(ifp, m); + if_input(ifp, m); /* Keep the buffer to be recycled. */ chan->recycled[chan->recycled_n++] = paddr;