PERFORCE change 130056 for review

Hans Petter Selasky hselasky at FreeBSD.org
Sun Dec 2 14:36:55 PST 2007


http://perforce.freebsd.org/chv.cgi?CH=130056

Change 130056 by hselasky at hselasky_laptop001 on 2007/12/02 22:35:58

	
	Update "if_rum.c" according to "if_ural.c"
	in change 130054 .

Affected files ...

.. //depot/projects/usb/src/sys/dev/usb/if_rum.c#18 edit

Differences ...

==== //depot/projects/usb/src/sys/dev/usb/if_rum.c#18 (text+ko) ====

@@ -1320,6 +1320,8 @@
 	uint32_t temp_len;
 	uint8_t align;
 
+	ic->ic_lastdata = ticks;
+
 	if (m->m_pkthdr.len > MCLBYTES) {
 		DPRINTF(sc, 0, "data overflow, %u bytes\n",
 		    m->m_pkthdr.len);
@@ -1425,6 +1427,17 @@
 
 			wh = mtod(m, struct ieee80211_frame *);
 
+			if (wh->i_fc[1] & IEEE80211_FC1_WEP) {
+				k = ieee80211_crypto_encap(ic, ni, m);
+				if (k == NULL) {
+					goto error;
+				}
+				/*
+				 * packet header may have moved, reset our
+				 * local pointer
+				 */
+				wh = mtod(m, struct ieee80211_frame *);
+			}
 			if (!IEEE80211_IS_MULTICAST(wh->i_addr1)) {
 
 				flags |= RT2573_TX_NEED_ACK;
@@ -1455,6 +1468,12 @@
 
 		if (m) {
 
+			/*
+		         * Cancel any background scan.
+		         */
+			if (ic->ic_flags & IEEE80211_F_SCAN) {
+				ieee80211_cancel_scan(ic);
+			}
 			if (m->m_len < sizeof(struct ether_header)) {
 				m = m_pullup(m, sizeof(struct ether_header));
 
@@ -2677,7 +2696,6 @@
     struct rum_config_copy *cc, uint16_t refcount)
 {
 	struct rum_tx_desc desc;
-	struct ieee80211com *ic = &(sc->sc_ic);
 	struct ieee80211_node *ni = sc->sc_ic.ic_bss;
 	struct mbuf *m;
 	uint16_t rate;
@@ -2685,7 +2703,7 @@
 	if ((sc->sc_flags & RUM_FLAG_LL_READY) &&
 	    (sc->sc_flags & RUM_FLAG_HL_READY)) {
 
-		m = ieee80211_beacon_alloc(ic, ic->ic_bss, &sc->sc_bo);
+		m = ieee80211_beacon_alloc(ni, &sc->sc_bo);
 		if (m == NULL) {
 			return;
 		}


More information about the p4-projects mailing list