clean up unused code: - foo_idx is unused in all usb ethernet drivers - foo_accum is the same remove unnecessary front ends when generic is good: - mue_ifmedia_sts() - smsc_ifmedia_sts() - udav_ifmedia_status() - ure_ifmedia_sts() - url_ifmedia_status() rename a few "iff" to "setmulti" for consistency ure_rx_list_init() checks for uc_xfer being empty also, update TODO.usbmp for if_axe. Index: TODO.usbmp =================================================================== RCS file: /cvsroot/src/sys/dev/usb/TODO.usbmp,v retrieving revision 1.13 diff -p -u -r1.13 TODO.usbmp --- TODO.usbmp 30 Jun 2019 22:19:55 -0000 1.13 +++ TODO.usbmp 22 Jul 2019 02:54:19 -0000 @@ -66,7 +66,6 @@ splusb drivers: - emdtv_dtv.c - if_athn_usb.c - if_aue.c - - if_axe.c - if_cue.c - if_kue.c - if_otus.c @@ -115,7 +114,6 @@ missing D_MPSAFE drivers: missing CALLOUT_MPSAFE drivers: - if_aue.c - - if_axe.c - if_cue.c - if_otus.c - if_rum.c Index: if_aue.c =================================================================== RCS file: /cvsroot/src/sys/dev/usb/if_aue.c,v retrieving revision 1.154 diff -p -u -r1.154 if_aue.c --- if_aue.c 28 May 2019 07:41:50 -0000 1.154 +++ if_aue.c 22 Jul 2019 02:54:19 -0000 @@ -1028,7 +1028,6 @@ aue_rx_list_init(struct aue_softc *sc) for (i = 0; i < AUE_RX_LIST_CNT; i++) { c = &cd->aue_rx_chain[i]; c->aue_sc = sc; - c->aue_idx = i; if (aue_newbuf(sc, c, NULL) == ENOBUFS) return ENOBUFS; if (c->aue_xfer == NULL) { @@ -1057,7 +1056,6 @@ aue_tx_list_init(struct aue_softc *sc) for (i = 0; i < AUE_TX_LIST_CNT; i++) { c = &cd->aue_tx_chain[i]; c->aue_sc = sc; - c->aue_idx = i; c->aue_mbuf = NULL; if (c->aue_xfer == NULL) { int err = usbd_create_xfer(sc->aue_ep[AUE_ENDPT_TX], Index: if_auereg.h =================================================================== RCS file: /cvsroot/src/sys/dev/usb/if_auereg.h,v retrieving revision 1.29 diff -p -u -r1.29 if_auereg.h --- if_auereg.h 21 Jul 2019 10:27:56 -0000 1.29 +++ if_auereg.h 22 Jul 2019 02:54:19 -0000 @@ -212,7 +212,6 @@ struct aue_chain { struct usbd_xfer *aue_xfer; char *aue_buf; struct mbuf *aue_mbuf; - int aue_idx; }; struct aue_cdata { Index: if_cdce.c =================================================================== RCS file: /cvsroot/src/sys/dev/usb/if_cdce.c,v retrieving revision 1.53 diff -p -u -r1.53 if_cdce.c --- if_cdce.c 21 Jul 2019 10:27:56 -0000 1.53 +++ if_cdce.c 22 Jul 2019 02:54:19 -0000 @@ -92,8 +92,6 @@ struct cdce_chain { struct usbd_xfer *cdce_xfer; char *cdce_buf; struct mbuf *cdce_mbuf; - int cdce_accum; - int cdce_idx; }; struct cdce_cdata { @@ -759,7 +757,6 @@ cdce_rx_list_init(struct cdce_softc *sc) for (i = 0; i < CDCE_RX_LIST_CNT; i++) { c = &cd->cdce_rx_chain[i]; c->cdce_sc = sc; - c->cdce_idx = i; if (cdce_newbuf(sc, c, NULL) == ENOBUFS) return ENOBUFS; if (c->cdce_xfer == NULL) { @@ -785,7 +782,6 @@ cdce_tx_list_init(struct cdce_softc *sc) for (i = 0; i < CDCE_TX_LIST_CNT; i++) { c = &cd->cdce_tx_chain[i]; c->cdce_sc = sc; - c->cdce_idx = i; c->cdce_mbuf = NULL; if (c->cdce_xfer == NULL) { int err = usbd_create_xfer(sc->cdce_bulkout_pipe, Index: if_kue.c =================================================================== RCS file: /cvsroot/src/sys/dev/usb/if_kue.c,v retrieving revision 1.96 diff -p -u -r1.96 if_kue.c --- if_kue.c 28 May 2019 07:41:50 -0000 1.96 +++ if_kue.c 22 Jul 2019 02:54:19 -0000 @@ -591,7 +591,6 @@ kue_rx_list_init(struct kue_softc *sc) for (i = 0; i < KUE_RX_LIST_CNT; i++) { c = &cd->kue_rx_chain[i]; c->kue_sc = sc; - c->kue_idx = i; if (c->kue_xfer == NULL) { int error = usbd_create_xfer(sc->kue_ep[KUE_ENDPT_RX], KUE_BUFSZ, 0, 0, &c->kue_xfer); @@ -617,7 +616,6 @@ kue_tx_list_init(struct kue_softc *sc) for (i = 0; i < KUE_TX_LIST_CNT; i++) { c = &cd->kue_tx_chain[i]; c->kue_sc = sc; - c->kue_idx = i; if (c->kue_xfer == NULL) { int error = usbd_create_xfer(sc->kue_ep[KUE_ENDPT_TX], KUE_BUFSZ, 0, 0, &c->kue_xfer); Index: if_kuereg.h =================================================================== RCS file: /cvsroot/src/sys/dev/usb/if_kuereg.h,v retrieving revision 1.22 diff -p -u -r1.22 if_kuereg.h --- if_kuereg.h 21 Jul 2019 10:27:56 -0000 1.22 +++ if_kuereg.h 22 Jul 2019 02:54:19 -0000 @@ -147,7 +147,6 @@ struct kue_chain { struct kue_softc *kue_sc; struct usbd_xfer *kue_xfer; uint8_t *kue_buf; - int kue_idx; }; struct kue_cdata { Index: if_mue.c =================================================================== RCS file: /cvsroot/src/sys/dev/usb/if_mue.c,v retrieving revision 1.50 diff -p -u -r1.50 if_mue.c --- if_mue.c 29 May 2019 09:04:01 -0000 1.50 +++ if_mue.c 22 Jul 2019 02:54:19 -0000 @@ -121,7 +121,6 @@ static int mue_miibus_readreg(device_t, static int mue_miibus_writereg(device_t, int, int, uint16_t); static void mue_miibus_statchg(struct ifnet *); static int mue_ifmedia_upd(struct ifnet *); -static void mue_ifmedia_sts(struct ifnet *, struct ifmediareq *); static uint8_t mue_eeprom_getbyte(struct mue_softc *, int, uint8_t *); static int mue_read_eeprom(struct mue_softc *, uint8_t *, int, int); @@ -468,20 +467,6 @@ mue_ifmedia_upd(struct ifnet *ifp) return mii_mediachg(mii); } -/* - * Report current media status. - */ -static void -mue_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr) -{ - struct mue_softc *sc = ifp->if_softc; - struct mii_data *mii = GET_MII(sc); - - mii_pollstat(mii); - ifmr->ifm_active = mii->mii_media_active; - ifmr->ifm_status = mii->mii_media_status; -} - static uint8_t mue_eeprom_getbyte(struct mue_softc *sc, int off, uint8_t *dest) { @@ -1044,7 +1029,7 @@ mue_attach(device_t parent, device_t sel mii->mii_flags = MIIF_AUTOTSLEEP; sc->mue_ec.ec_mii = mii; - ifmedia_init(&mii->mii_media, 0, mue_ifmedia_upd, mue_ifmedia_sts); + ifmedia_init(&mii->mii_media, 0, mue_ifmedia_upd, ether_mediastatus); mii_attach(self, mii, 0xffffffff, MII_PHY_ANY, MII_OFFSET_ANY, 0); if (LIST_FIRST(&mii->mii_phys) == NULL) { Index: if_smsc.c =================================================================== RCS file: /cvsroot/src/sys/dev/usb/if_smsc.c,v retrieving revision 1.45 diff -p -u -r1.45 if_smsc.c --- if_smsc.c 23 May 2019 13:10:52 -0000 1.45 +++ if_smsc.c 22 Jul 2019 02:54:19 -0000 @@ -178,7 +178,6 @@ void smsc_miibus_statchg_locked(struct int smsc_miibus_readreg(device_t, int, int, uint16_t *); int smsc_miibus_writereg(device_t, int, int, uint16_t); int smsc_ifmedia_upd(struct ifnet *); -void smsc_ifmedia_sts(struct ifnet *, struct ifmediareq *); void smsc_lock_mii(struct smsc_softc *); void smsc_unlock_mii(struct smsc_softc *); @@ -434,22 +433,6 @@ smsc_ifmedia_upd(struct ifnet *ifp) return err; } -void -smsc_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr) -{ - struct smsc_softc * const sc = ifp->if_softc; - struct mii_data * const mii = &sc->sc_mii; - - /* SMSC_LOCK */ - - mii_pollstat(mii); - - ifmr->ifm_active = mii->mii_media_active; - ifmr->ifm_status = mii->mii_media_status; - - /* SMSC_UNLOCK */ -} - static inline uint32_t smsc_hash(uint8_t addr[ETHER_ADDR_LEN]) { @@ -1215,7 +1198,7 @@ smsc_attach(device_t parent, device_t se mii->mii_statchg = smsc_miibus_statchg; mii->mii_flags = MIIF_AUTOTSLEEP; sc->sc_ec.ec_mii = mii; - ifmedia_init(&mii->mii_media, 0, smsc_ifmedia_upd, smsc_ifmedia_sts); + ifmedia_init(&mii->mii_media, 0, smsc_ifmedia_upd, ether_mediastatus); mii_attach(self, mii, 0xffffffff, MII_PHY_ANY, MII_OFFSET_ANY, 0); if (LIST_FIRST(&mii->mii_phys) == NULL) { @@ -1625,7 +1608,6 @@ smsc_tx_list_init(struct smsc_softc *sc) for (i = 0; i < SMSC_TX_LIST_CNT; i++) { c = &cd->tx_chain[i]; c->sc_sc = sc; - c->sc_idx = i; c->sc_mbuf = NULL; if (c->sc_xfer == NULL) { int error = usbd_create_xfer(sc->sc_ep[SMSC_ENDPT_TX], @@ -1669,7 +1651,6 @@ smsc_rx_list_init(struct smsc_softc *sc) for (i = 0; i < SMSC_RX_LIST_CNT; i++) { c = &cd->rx_chain[i]; c->sc_sc = sc; - c->sc_idx = i; c->sc_mbuf = NULL; if (c->sc_xfer == NULL) { int error = usbd_create_xfer(sc->sc_ep[SMSC_ENDPT_RX], Index: if_smscvar.h =================================================================== RCS file: /cvsroot/src/sys/dev/usb/if_smscvar.h,v retrieving revision 1.6 diff -p -u -r1.6 if_smscvar.h --- if_smscvar.h 8 Sep 2018 13:10:08 -0000 1.6 +++ if_smscvar.h 22 Jul 2019 02:54:19 -0000 @@ -39,8 +39,6 @@ struct smsc_chain { struct usbd_xfer *sc_xfer; char *sc_buf; struct mbuf *sc_mbuf; - int sc_accum; - int sc_idx; }; struct smsc_cdata { Index: if_udav.c =================================================================== RCS file: /cvsroot/src/sys/dev/usb/if_udav.c,v retrieving revision 1.59 diff -p -u -r1.59 if_udav.c --- if_udav.c 28 May 2019 07:41:50 -0000 1.59 +++ if_udav.c 22 Jul 2019 02:54:19 -0000 @@ -109,7 +109,6 @@ Static void udav_stop_task(struct udav_s Static void udav_stop(struct ifnet *, int); Static void udav_watchdog(struct ifnet *); Static int udav_ifmedia_change(struct ifnet *); -Static void udav_ifmedia_status(struct ifnet *, struct ifmediareq *); Static void udav_lock_mii(struct udav_softc *); Static void udav_unlock_mii(struct udav_softc *); Static int udav_miibus_readreg(device_t, int, int, uint16_t *); @@ -309,7 +308,7 @@ udav_attach(device_t parent, device_t se mii->mii_flags = MIIF_AUTOTSLEEP; sc->sc_ec.ec_mii = mii; ifmedia_init(&mii->mii_media, 0, - udav_ifmedia_change, udav_ifmedia_status); + udav_ifmedia_change, ether_mediastatus); mii_attach(self, mii, 0xffffffff, MII_PHY_ANY, MII_OFFSET_ANY, 0); if (LIST_FIRST(&mii->mii_phys) == NULL) { ifmedia_add(&mii->mii_media, IFM_ETHER | IFM_NONE, 0, NULL); @@ -943,7 +942,6 @@ udav_rx_list_init(struct udav_softc *sc) for (i = 0; i < UDAV_RX_LIST_CNT; i++) { c = &cd->udav_rx_chain[i]; c->udav_sc = sc; - c->udav_idx = i; if (udav_newbuf(sc, c, NULL) == ENOBUFS) return ENOBUFS; if (c->udav_xfer == NULL) { @@ -971,7 +969,6 @@ udav_tx_list_init(struct udav_softc *sc) for (i = 0; i < UDAV_TX_LIST_CNT; i++) { c = &cd->udav_tx_chain[i]; c->udav_sc = sc; - c->udav_idx = i; c->udav_mbuf = NULL; if (c->udav_xfer == NULL) { int error = usbd_create_xfer(sc->sc_pipe_tx, UDAV_BUFSZ, @@ -1390,20 +1387,6 @@ udav_ifmedia_change(struct ifnet *ifp) return rc; } -/* Report current media status. */ -Static void -udav_ifmedia_status(struct ifnet *ifp, struct ifmediareq *ifmr) -{ - struct udav_softc *sc = ifp->if_softc; - - DPRINTF(("%s: %s: enter\n", device_xname(sc->sc_dev), __func__)); - - if (sc->sc_dying) - return; - - ether_mediastatus(ifp, ifmr); -} - Static void udav_tick(void *xsc) { Index: if_udavreg.h =================================================================== RCS file: /cvsroot/src/sys/dev/usb/if_udavreg.h,v retrieving revision 1.13 diff -p -u -r1.13 if_udavreg.h --- if_udavreg.h 21 Jul 2019 10:27:56 -0000 1.13 +++ if_udavreg.h 22 Jul 2019 02:54:19 -0000 @@ -149,7 +149,6 @@ struct udav_chain { struct usbd_xfer *udav_xfer; char *udav_buf; struct mbuf *udav_mbuf; - int udav_idx; }; struct udav_cdata { Index: if_ure.c =================================================================== RCS file: /cvsroot/src/sys/dev/usb/if_ure.c,v retrieving revision 1.14 diff -p -u -r1.14 if_ure.c --- if_ure.c 19 Jul 2019 04:17:34 -0000 1.14 +++ if_ure.c 22 Jul 2019 02:54:19 -0000 @@ -137,7 +137,6 @@ static void ure_tick_task(void *); static void ure_tick(void *); static int ure_ifmedia_upd(struct ifnet *); -static void ure_ifmedia_sts(struct ifnet *, struct ifmediareq *); static int ure_ioctl(struct ifnet *, u_long, void *); static void ure_rtl8152_init(struct ure_softc *); static void ure_rtl8153_init(struct ure_softc *); @@ -409,18 +408,7 @@ ure_ifmedia_upd(struct ifnet *ifp) } static void -ure_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr) -{ - struct ure_softc *sc = ifp->if_softc; - struct mii_data *mii = GET_MII(sc); - - mii_pollstat(mii); - ifmr->ifm_active = mii->mii_media_active; - ifmr->ifm_status = mii->mii_media_status; -} - -static void -ure_iff_locked(struct ure_softc *sc) +ure_setmulti_locked(struct ure_softc *sc) { struct ethercom *ec = &sc->ure_ec; struct ifnet *ifp = GET_IFP(sc); @@ -488,11 +476,11 @@ allmulti: } static void -ure_iff(struct ure_softc *sc) +ure_setmulti(struct ure_softc *sc) { mutex_enter(&sc->ure_lock); - ure_iff_locked(sc); + ure_setmulti_locked(sc); mutex_exit(&sc->ure_lock); } @@ -559,7 +547,7 @@ ure_init_locked(struct ifnet *ifp) ~URE_RXDY_GATED_EN); /* Load the multicast filter. */ - ure_iff_locked(sc); + ure_setmulti_locked(sc); /* Open RX and TX pipes. */ err = usbd_open_pipe(sc->ure_iface, sc->ure_ed[URE_ENDPT_RX], @@ -1113,7 +1101,7 @@ ure_ioctl(struct ifnet *ifp, u_long cmd, break; case IFF_UP | IFF_RUNNING: if ((ifp->if_flags ^ oflags) == IFF_PROMISC) - ure_iff(sc); + ure_setmulti(sc); else ure_init(ifp); } @@ -1127,7 +1115,7 @@ ure_ioctl(struct ifnet *ifp, u_long cmd, switch (cmd) { case SIOCADDMULTI: case SIOCDELMULTI: - ure_iff(sc); + ure_setmulti(sc); break; default: break; @@ -1309,7 +1297,7 @@ ure_attach(device_t parent, device_t sel mii->mii_flags = MIIF_AUTOTSLEEP; sc->ure_ec.ec_mii = mii; - ifmedia_init(&mii->mii_media, 0, ure_ifmedia_upd, ure_ifmedia_sts); + ifmedia_init(&mii->mii_media, 0, ure_ifmedia_upd, ether_mediastatus); mii_attach(self, mii, 0xffffffff, sc->ure_phyno, MII_OFFSET_ANY, 0); if (LIST_FIRST(&mii->mii_phys) == NULL) { @@ -1692,11 +1680,13 @@ ure_rx_list_init(struct ure_softc *sc) for (i = 0; i < URE_RX_LIST_CNT; i++) { c = &cd->rx_chain[i]; c->uc_sc = sc; - error = usbd_create_xfer(sc->ure_ep[URE_ENDPT_RX], - sc->ure_bufsz, 0, 0, &c->uc_xfer); - if (error) - return error; - c->uc_buf = usbd_get_buffer(c->uc_xfer); + if (c->uc_xfer == NULL) { + error = usbd_create_xfer(sc->ure_ep[URE_ENDPT_RX], + sc->ure_bufsz, 0, 0, &c->uc_xfer); + if (error) + return error; + c->uc_buf = usbd_get_buffer(c->uc_xfer); + } } return 0; Index: if_url.c =================================================================== RCS file: /cvsroot/src/sys/dev/usb/if_url.c,v retrieving revision 1.66 diff -p -u -r1.66 if_url.c --- if_url.c 21 Jul 2019 10:27:56 -0000 1.66 +++ if_url.c 22 Jul 2019 02:54:19 -0000 @@ -110,7 +110,6 @@ Static void url_stop_task(struct url_sof Static void url_stop(struct ifnet *, int); Static void url_watchdog(struct ifnet *); Static int url_ifmedia_change(struct ifnet *); -Static void url_ifmedia_status(struct ifnet *, struct ifmediareq *); Static void url_lock_mii(struct url_softc *); Static void url_unlock_mii(struct url_softc *); Static int url_int_miibus_readreg(device_t, int, int, uint16_t *); @@ -304,7 +303,7 @@ url_attach(device_t parent, device_t sel mii->mii_flags = MIIF_AUTOTSLEEP; sc->sc_ec.ec_mii = mii; ifmedia_init(&mii->mii_media, 0, - url_ifmedia_change, url_ifmedia_status); + url_ifmedia_change, ether_mediastatus); mii_attach(self, mii, 0xffffffff, MII_PHY_ANY, MII_OFFSET_ANY, 0); if (LIST_FIRST(&mii->mii_phys) == NULL) { ifmedia_add(&mii->mii_media, IFM_ETHER | IFM_NONE, 0, NULL); @@ -1259,20 +1258,6 @@ url_ifmedia_change(struct ifnet *ifp) return rc; } -/* Report current media status. */ -Static void -url_ifmedia_status(struct ifnet *ifp, struct ifmediareq *ifmr) -{ - struct url_softc *sc = ifp->if_softc; - - DPRINTF(("%s: %s: enter\n", device_xname(sc->sc_dev), __func__)); - - if (sc->sc_dying) - return; - - ether_mediastatus(ifp, ifmr); -} - Static void url_tick(void *xsc) { Index: if_urndis.c =================================================================== RCS file: /cvsroot/src/sys/dev/usb/if_urndis.c,v retrieving revision 1.21 diff -p -u -r1.21 if_urndis.c --- if_urndis.c 5 Mar 2019 08:25:03 -0000 1.21 +++ if_urndis.c 22 Jul 2019 02:54:19 -0000 @@ -66,7 +66,6 @@ struct urndis_chain { struct usbd_xfer *sc_xfer; char *sc_buf; struct mbuf *sc_mbuf; - int sc_idx; }; struct urndis_cdata { @@ -935,7 +934,6 @@ urndis_rx_list_init(struct urndis_softc for (i = 0; i < RNDIS_RX_LIST_CNT; i++) { c = &cd->sc_rx_chain[i]; c->sc_softc = sc; - c->sc_idx = i; if (urndis_newbuf(sc, c) == ENOBUFS) return ENOBUFS; @@ -963,7 +961,6 @@ urndis_tx_list_init(struct urndis_softc for (i = 0; i < RNDIS_TX_LIST_CNT; i++) { c = &cd->sc_tx_chain[i]; c->sc_softc = sc; - c->sc_idx = i; c->sc_mbuf = NULL; if (c->sc_xfer == NULL) { int err = usbd_create_xfer(sc->sc_bulkout_pipe,