From owner-p4-projects@FreeBSD.ORG Mon Apr 27 15:31:30 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EA93B1065670; Mon, 27 Apr 2009 15:31:29 +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 A16B51065677 for ; Mon, 27 Apr 2009 15:31:29 +0000 (UTC) (envelope-from thompsa@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7556C8FC15 for ; Mon, 27 Apr 2009 15:31:29 +0000 (UTC) (envelope-from thompsa@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n3RFVSuJ048141 for ; Mon, 27 Apr 2009 15:31:28 GMT (envelope-from thompsa@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n3RFVSbE048139 for perforce@freebsd.org; Mon, 27 Apr 2009 15:31:28 GMT (envelope-from thompsa@freebsd.org) Date: Mon, 27 Apr 2009 15:31:28 GMT Message-Id: <200904271531.n3RFVSbE048139@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to thompsa@freebsd.org using -f From: Andrew Thompson To: Perforce Change Reviews Cc: Subject: PERFORCE change 161174 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: Mon, 27 Apr 2009 15:31:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=161174 Change 161174 by thompsa@thompsa_burger on 2009/04/27 15:30:34 Catch up with changes in HEAD - Hoist 802.11 encapsulation up into net80211 - Eiminate ic_myaddr so changing the mac address of a device works correctly Affected files ... .. //depot/projects/vap/sys/dev/bwi/if_bwi.c#24 edit Differences ... ==== //depot/projects/vap/sys/dev/bwi/if_bwi.c#24 (text+ko) ==== @@ -361,6 +361,7 @@ struct bwi_phy *phy; int i, error; uint8_t bands; + uint8_t macaddr[IEEE80211_ADDR_LEN]; BWI_LOCK_INIT(sc); @@ -482,13 +483,13 @@ setbit(&bands, IEEE80211_MODE_11G); } - bwi_get_eaddr(sc, BWI_SPROM_11BG_EADDR, ic->ic_myaddr); - if (IEEE80211_IS_MULTICAST(ic->ic_myaddr)) { - bwi_get_eaddr(sc, BWI_SPROM_11A_EADDR, ic->ic_myaddr); - if (IEEE80211_IS_MULTICAST(ic->ic_myaddr)) { + bwi_get_eaddr(sc, BWI_SPROM_11BG_EADDR, macaddr); + if (IEEE80211_IS_MULTICAST(macaddr)) { + bwi_get_eaddr(sc, BWI_SPROM_11A_EADDR, macaddr); + if (IEEE80211_IS_MULTICAST(macaddr)) { device_printf(dev, "invalid MAC address: %6D\n", - ic->ic_myaddr, ":"); + macaddr, ":"); } } } else if (phy->phy_mode == IEEE80211_MODE_11A) { @@ -514,7 +515,7 @@ IEEE80211_C_WPA | IEEE80211_C_MONITOR; ic->ic_opmode = IEEE80211_M_STA; - ieee80211_ifattach(ic); + ieee80211_ifattach(ic, macaddr); ic->ic_headroom = sizeof(struct bwi_txbuf_hdr); @@ -1263,11 +1264,9 @@ } bwi_bbp_power_on(sc, BWI_CLOCK_MODE_DYN); - - bcopy(IF_LLADDR(ifp), ic->ic_myaddr, sizeof(ic->ic_myaddr)); bwi_set_bssid(sc, bwi_zero_addr); /* Clear BSSID */ - bwi_set_addr_filter(sc, BWI_ADDR_FILTER_MYADDR, ic->ic_myaddr); + bwi_set_addr_filter(sc, BWI_ADDR_FILTER_MYADDR, IF_LLADDR(ifp)); bwi_mac_reset_hwkeys(mac); @@ -1407,13 +1406,6 @@ break; ni = (struct ieee80211_node *) m->m_pkthdr.rcvif; - m = ieee80211_encap(ni, m); - if (m == NULL) { - ieee80211_free_node(ni); - ifp->if_oerrors++; - continue; - } - wh = mtod(m, struct ieee80211_frame *); if (wh->i_fc[1] & IEEE80211_FC1_WEP) { k = ieee80211_crypto_encap(ni, m); @@ -3711,7 +3703,7 @@ bwi_set_addr_filter(sc, BWI_ADDR_FILTER_BSSID, bssid); - bcopy(ic->ic_myaddr, buf.myaddr, sizeof(buf.myaddr)); + bcopy(IF_LLADDR(ifp), buf.myaddr, sizeof(buf.myaddr)); bcopy(bssid, buf.bssid, sizeof(buf.bssid)); n = sizeof(buf) / sizeof(val);