Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 8 Jun 2008 10:48:49 GMT
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 143106 for review
Message-ID:  <200806081048.m58AmniS092138@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
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;
 }
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200806081048.m58AmniS092138>