Date: Sun, 1 Feb 2009 06:50:37 +0000 (UTC) From: Andrew Thompson <thompsa@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r187978 - user/thompsa/usb/sys/dev/usb2/ethernet Message-ID: <200902010650.n116obU1045871@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: thompsa Date: Sun Feb 1 06:50:37 2009 New Revision: 187978 URL: http://svn.freebsd.org/changeset/base/187978 Log: Rearrange things slightly to reduce gotos. Modified: user/thompsa/usb/sys/dev/usb2/ethernet/if_aue2.c user/thompsa/usb/sys/dev/usb2/ethernet/if_axe2.c user/thompsa/usb/sys/dev/usb2/ethernet/if_cue2.c user/thompsa/usb/sys/dev/usb2/ethernet/if_kue2.c user/thompsa/usb/sys/dev/usb2/ethernet/if_udav2.c Modified: user/thompsa/usb/sys/dev/usb2/ethernet/if_aue2.c ============================================================================== --- user/thompsa/usb/sys/dev/usb2/ethernet/if_aue2.c Sun Feb 1 06:39:40 2009 (r187977) +++ user/thompsa/usb/sys/dev/usb2/ethernet/if_aue2.c Sun Feb 1 06:50:37 2009 (r187978) @@ -382,10 +382,6 @@ aue_miibus_readreg(device_t dev, int phy int i, locked; uint16_t val = 0; - locked = mtx_owned(&sc->sc_mtx); - if (!locked) - AUE_LOCK(sc); - /* * The Am79C901 HomePNA PHY actually contains two transceivers: a 1Mbps * HomePNA PHY and a 10Mbps full/half duplex ethernet PHY with NWAY @@ -393,14 +389,13 @@ aue_miibus_readreg(device_t dev, int phy * actually connected to anything, so we ignore the 10Mbps one. It * happens to be configured for MII address 3, so we filter that out. */ - if (sc->sc_flags & AUE_FLAG_DUAL_PHY) { - if (phy == 3) - goto done; -#if 0 - if (phy != 1) - goto done; -#endif - } + if (sc->sc_flags & AUE_FLAG_DUAL_PHY && phy == 3) + return (0); + + locked = mtx_owned(&sc->sc_mtx); + if (!locked) + AUE_LOCK(sc); + aue_csr_write_1(sc, AUE_PHY_ADDR, phy); aue_csr_write_1(sc, AUE_PHY_CTL, reg | AUE_PHYCTL_READ); @@ -414,7 +409,6 @@ aue_miibus_readreg(device_t dev, int phy val = aue_csr_read_2(sc, AUE_PHY_DATA); -done: if (!locked) AUE_UNLOCK(sc); return (val); Modified: user/thompsa/usb/sys/dev/usb2/ethernet/if_axe2.c ============================================================================== --- user/thompsa/usb/sys/dev/usb2/ethernet/if_axe2.c Sun Feb 1 06:39:40 2009 (r187977) +++ user/thompsa/usb/sys/dev/usb2/ethernet/if_axe2.c Sun Feb 1 06:50:37 2009 (r187978) @@ -726,7 +726,7 @@ axe_bulk_read_callback(struct usb2_xfer switch (USB_GET_STATE(xfer)) { case USB_ST_TRANSFERRED: pos = 0; - while (1) { + for (;;) { if (sc->sc_flags & (AXE_FLAG_772 | AXE_FLAG_178)) { if (xfer->actlen < sizeof(hdr)) { /* too little data */ @@ -736,6 +736,7 @@ axe_bulk_read_callback(struct usb2_xfer if ((hdr.len ^ hdr.ilen) != 0xFFFF) { /* we lost sync */ + ifp->if_ierrors++; break; } xfer->actlen -= sizeof(hdr); @@ -744,6 +745,7 @@ axe_bulk_read_callback(struct usb2_xfer len = le16toh(hdr.len); if (len > xfer->actlen) { /* invalid length */ + ifp->if_ierrors++; break; } adjust = (len & 1); @@ -761,18 +763,13 @@ axe_bulk_read_callback(struct usb2_xfer if (xfer->actlen <= adjust) { /* we are finished */ - goto tr_setup; + break; } pos += adjust; xfer->actlen -= adjust; } - - /* count an error */ - ifp->if_ierrors++; - /* FALLTHROUGH */ case USB_ST_SETUP: -tr_setup: xfer->frlengths[0] = xfer->max_data_length; usb2_start_hardware(xfer); usb2_ether_rxflush(ue); @@ -805,23 +802,17 @@ axe_bulk_write_callback(struct usb2_xfer /* FALLTHROUGH */ case USB_ST_SETUP: - if ((sc->sc_flags & AXE_FLAG_LINK) == 0) { - /* - * don't send anything if there is no link ! - */ - goto done; - } - pos = 0; + if ((sc->sc_flags & AXE_FLAG_LINK) == 0) + return; + pos = 0; while (1) { - IFQ_DRV_DEQUEUE(&ifp->if_snd, m); - if (m == NULL) { if (pos > 0) break; /* send out data */ else - goto done; + return; } if (m->m_pkthdr.len > MCLBYTES) { m->m_pkthdr.len = MCLBYTES; @@ -869,8 +860,6 @@ axe_bulk_write_callback(struct usb2_xfer xfer->frlengths[0] = pos; usb2_start_hardware(xfer); - -done: break; default: /* Error */ Modified: user/thompsa/usb/sys/dev/usb2/ethernet/if_cue2.c ============================================================================== --- user/thompsa/usb/sys/dev/usb2/ethernet/if_cue2.c Sun Feb 1 06:39:40 2009 (r187977) +++ user/thompsa/usb/sys/dev/usb2/ethernet/if_cue2.c Sun Feb 1 06:50:37 2009 (r187978) @@ -435,17 +435,16 @@ cue_bulk_read_callback(struct usb2_xfer if (xfer->actlen <= (2 + sizeof(struct ether_header))) { ifp->if_ierrors++; - goto tr_setup; - } - usb2_copy_out(xfer->frbuffers, 0, buf, 2); - xfer->actlen -= 2; - len = buf[0] | (buf[1] << 8); - len = min(xfer->actlen, len); + } else { + usb2_copy_out(xfer->frbuffers, 0, buf, 2); + xfer->actlen -= 2; + len = buf[0] | (buf[1] << 8); + len = min(xfer->actlen, len); - usb2_ether_rxbuf(ue, xfer, 2, len); + usb2_ether_rxbuf(ue, xfer, 2, len); + } /* FALLTHROUGH */ case USB_ST_SETUP: -tr_setup: xfer->frlengths[0] = xfer->max_data_length; usb2_start_hardware(xfer); usb2_ether_rxflush(ue); @@ -457,8 +456,7 @@ tr_setup: usb2_clear_endpoint_stall(xfer); return; } - DPRINTF("bulk read error, %s\n", - usb2_errstr(xfer->error)); + DPRINTF("bulk read error, %s\n", usb2_errstr(xfer->error)); break; } } Modified: user/thompsa/usb/sys/dev/usb2/ethernet/if_kue2.c ============================================================================== --- user/thompsa/usb/sys/dev/usb2/ethernet/if_kue2.c Sun Feb 1 06:39:40 2009 (r187977) +++ user/thompsa/usb/sys/dev/usb2/ethernet/if_kue2.c Sun Feb 1 06:50:37 2009 (r187978) @@ -513,18 +513,16 @@ kue_bulk_read_callback(struct usb2_xfer if (xfer->actlen <= (2 + sizeof(struct ether_header))) { ifp->if_ierrors++; - goto tr_setup; - } - usb2_copy_out(xfer->frbuffers, 0, buf, 2); - xfer->actlen -= 2; - len = buf[0] | (buf[1] << 8); - len = min(xfer->actlen, len); + } else { + usb2_copy_out(xfer->frbuffers, 0, buf, 2); + xfer->actlen -= 2; + len = buf[0] | (buf[1] << 8); + len = min(xfer->actlen, len); - usb2_ether_rxbuf(ue, xfer, 2, len); + usb2_ether_rxbuf(ue, xfer, 2, len); + } /* FALLTHROUGH */ case USB_ST_SETUP: -tr_setup: - xfer->frlengths[0] = xfer->max_data_length; usb2_start_hardware(xfer); usb2_ether_rxflush(ue); @@ -538,7 +536,6 @@ tr_setup: } DPRINTF("bulk read error, %s\n", usb2_errstr(xfer->error)); break; - } } Modified: user/thompsa/usb/sys/dev/usb2/ethernet/if_udav2.c ============================================================================== --- user/thompsa/usb/sys/dev/usb2/ethernet/if_udav2.c Sun Feb 1 06:39:40 2009 (r187977) +++ user/thompsa/usb/sys/dev/usb2/ethernet/if_udav2.c Sun Feb 1 06:50:37 2009 (r187978) @@ -557,12 +557,9 @@ udav_bulk_write_callback(struct usb2_xfe /* FALLTHROUGH */ case USB_ST_SETUP: - if ((sc->sc_flags & UDAV_FLAG_LINK) == 0) { - /* - * don't send anything if there is no link ! - */ - goto done; - } + if ((sc->sc_flags & UDAV_FLAG_LINK) == 0) + break; + IFQ_DRV_DEQUEUE(&ifp->if_snd, m); if (m == NULL) break; @@ -605,7 +602,6 @@ udav_bulk_write_callback(struct usb2_xfe xfer->frlengths[0] = temp_len; usb2_start_hardware(xfer); -done: break; default: /* Error */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200902010650.n116obU1045871>