From owner-p4-projects@FreeBSD.ORG Sun Jun 8 10:48:50 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 548911065671; Sun, 8 Jun 2008 10:48:50 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 16DFE106564A for ; Sun, 8 Jun 2008 10:48:50 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E47588FC1B for ; Sun, 8 Jun 2008 10:48:49 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m58Amn0m092140 for ; Sun, 8 Jun 2008 10:48:49 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m58AmniS092138 for perforce@freebsd.org; Sun, 8 Jun 2008 10:48:49 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 8 Jun 2008 10:48:49 GMT Message-Id: <200806081048.m58AmniS092138@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 143106 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jun 2008 10:48:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=143106 Change 143106 by hselasky@hselasky_laptop001 on 2008/06/08 10:48:23 Some corrections, compile fixes and optimisations found after review. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/if_ural.c#56 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/if_ural.c#56 (text+ko) ==== @@ -900,7 +900,8 @@ } static void -ural_config_copy_chan(struct ural_config_copy_chan *cc, struct ieee80211_channel *c) +ural_config_copy_chan(struct ural_config_copy_chan *cc, + struct ieee80211com *ic, struct ieee80211_channel *c) { if (!c) return; @@ -943,8 +944,8 @@ ic = ifp->if_l2com; if (ic) { - ural_config_copy_chan(&cc->ic_curchan, ic->ic_curchan); - ural_config_copy_chan(&cc->ic_bsschan, ic->ic_bsschan); + ural_config_copy_chan(&cc->ic_curchan, ic, ic->ic_curchan); + ural_config_copy_chan(&cc->ic_bsschan, ic, ic->ic_bsschan); vap = TAILQ_FIRST(&ic->ic_vaps); if (vap) { ni = vap->iv_bss; @@ -1108,13 +1109,16 @@ if (ni) { /* send the frame to the 802.11 layer */ - ieee80211_input(ni, m, rssi, RAL_NOISE_FLOOR, 0); - + if (ieee80211_input(ni, m, rssi, RAL_NOISE_FLOOR, 0)) { + /* ignore */ + } /* node is no longer needed */ ieee80211_free_node(ni); } else { /* broadcast */ - ieee80211_input_all(ic, m, rssi, RAL_NOISE_FLOOR, 0); + if (ieee80211_input_all(ic, m, rssi, RAL_NOISE_FLOOR, 0)) { + /* ignore */ + } } mtx_lock(&(sc->sc_mtx)); @@ -1311,6 +1315,7 @@ struct ifnet *ifp = sc->sc_ifp; struct mbuf *m; uint16_t temp_len; + uint8_t align; switch (USBD_GET_STATE(xfer)) { case USBD_ST_TRANSFERRED: @@ -1347,16 +1352,17 @@ temp_len = m->m_pkthdr.len; /* make transfer length 16-bit aligned */ - if (temp_len & 1) { - /* zero the extra byte */ - usbd_bzero(xfer->frbuffers, temp_len, 1); - temp_len++; + align = (temp_len & 1); + + /* check if we need to add two extra bytes */ + if (((temp_len + align) % 64) == 0) { + align += 2; } - /* check if we need to add two extra bytes */ - if ((temp_len % 64) == 0) { + /* check if we need to align length */ + if (align != 0) { /* zero the extra bytes */ - usbd_bzero(xfer->frbuffers, temp_len, 2); - temp_len += 2; + usbd_bzero(xfer->frbuffers, temp_len, align); + temp_len += align; } DPRINTF(sc, 10, "sending frame len=%u xferlen=%u\n", m->m_pkthdr.len, temp_len); @@ -2570,7 +2576,7 @@ } tp = &vap->iv_txparms[ieee80211_chan2mode(ic->ic_bsschan)]; - m->m_pkthdr.rcvif = (void *)ni; + m->m_pkthdr.rcvif = (void *)ieee80211_ref_node(ni); ural_setup_desc_and_tx(sc, m, RAL_TX_IFS_NEWBACKOFF | RAL_TX_TIMESTAMP, tp->mgmtrate); return; @@ -2679,7 +2685,7 @@ return; } mprot->m_pkthdr.rcvif = (void *)ieee80211_ref_node(ni); - ural_setup_desc_and_tx(sc, mprot, flags, rate); + ural_setup_desc_and_tx(sc, mprot, flags, protrate); return; }