PERFORCE change 142324 for review

Sam Leffler sam at FreeBSD.org
Mon May 26 22:35:57 UTC 2008


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

Change 142324 by sam at sam_ebb on 2008/05/26 22:35:11

	use the newly added wk_macaddr to eliminate a hack

Affected files ...

.. //depot/projects/vap/sys/dev/ath/if_ath.c#76 edit

Differences ...

==== //depot/projects/vap/sys/dev/ath/if_ath.c#76 (text+ko) ====

@@ -139,7 +139,6 @@
 static void	ath_bmiss_vap(struct ieee80211vap *);
 static void	ath_bmiss_proc(void *, int);
 static int	ath_keyset(struct ath_softc *, const struct ieee80211_key *,
-			const u_int8_t [IEEE80211_ADDR_LEN],
 			struct ieee80211_node *);
 static int	ath_key_alloc(struct ieee80211vap *,
 			const struct ieee80211_key *,
@@ -1078,7 +1077,7 @@
 		return;
 	k = &ni->ni_ucastkey;
 	if (k->wk_keyix != IEEE80211_KEYIX_NONE)
-		ath_keyset(sc, k, ni->ni_macaddr, vap->iv_bss);
+		ath_keyset(sc, k, vap->iv_bss);
 }
 
 /*
@@ -1108,11 +1107,8 @@
 			continue;
 		for (i = 0; i < IEEE80211_WEP_NKID; i++) {
 			const struct ieee80211_key *k = &vap->iv_nw_keys[i];
-			if (k->wk_keyix == IEEE80211_KEYIX_NONE)
-				continue;
-			/* XXX group keys need bcast addr, should be in key */
-			ath_keyset(sc, k, k->wk_flags & IEEE80211_KEY_GROUP ?
-			   ifp->if_broadcastaddr : vap->iv_myaddr, vap->iv_bss);
+			if (k->wk_keyix != IEEE80211_KEYIX_NONE)
+				ath_keyset(sc, k, vap->iv_bss);
 		}
 	}
 	/*
@@ -2225,7 +2221,6 @@
  */
 static int
 ath_keyset(struct ath_softc *sc, const struct ieee80211_key *k,
-	const u_int8_t mac0[IEEE80211_ADDR_LEN],
 	struct ieee80211_node *bss)
 {
 #define	N(a)	(sizeof(a)/sizeof(a[0]))
@@ -2269,7 +2264,7 @@
 		gmac[0] |= 0x80;
 		mac = gmac;
 	} else
-		mac = mac0;
+		mac = k->wk_macaddr;
 
 	if (hk.kv_type == HAL_CIPHER_TKIP &&
 	    (k->wk_flags & IEEE80211_KEY_SWMIC) == 0) {
@@ -2528,7 +2523,7 @@
 {
 	struct ath_softc *sc = vap->iv_ic->ic_ifp->if_softc;
 
-	return ath_keyset(sc, k, mac, vap->iv_bss);
+	return ath_keyset(sc, k, vap->iv_bss);
 }
 
 /*
@@ -5850,8 +5845,9 @@
 		/* XXX locking? */
 		ni->ni_ucastkey.wk_keyix = keyix;
 		ni->ni_ucastkey.wk_rxkeyix = rxkeyix;
+		IEEE80211_ADDR_COPY(ni->ni_ucastkey.wk_macaddr, ni->ni_macaddr);
 		/* NB: this will create a pass-thru key entry */
-		ath_keyset(sc, &ni->ni_ucastkey, ni->ni_macaddr, vap->iv_bss);
+		ath_keyset(sc, &ni->ni_ucastkey, vap->iv_bss);
 	}
 }
 


More information about the p4-projects mailing list