]> err.no Git - linux-2.6/blobdiff - drivers/net/wireless/hostap/hostap_ap.c
ipw2200 - Fix bad ipw_write8() macro
[linux-2.6] / drivers / net / wireless / hostap / hostap_ap.c
index ad040a3bb8a716d467c7d17f646dc5edfb392eec..af3d4ef2a80b75218b52f538e93e58e8215f5930 100644 (file)
@@ -632,7 +632,6 @@ static void hostap_ap_tx_cb_auth(struct sk_buff *skb, int ok, void *data)
        __le16 *pos;
        struct sta_info *sta = NULL;
        char *txt = NULL;
-       DECLARE_MAC_BUF(mac);
 
        if (ap->local->hostapd) {
                dev_kfree_skb(skb);
@@ -684,10 +683,12 @@ static void hostap_ap_tx_cb_auth(struct sk_buff *skb, int ok, void *data)
        if (sta)
                atomic_dec(&sta->users);
        if (txt) {
-               PDEBUG(DEBUG_AP, "%s: %s auth_cb - alg=%d "
+               PDEBUG(DEBUG_AP, "%s: " MAC_FMT " auth_cb - alg=%d "
                       "trans#=%d status=%d - %s\n",
-                      dev->name, print_mac(mac, hdr->addr1), auth_alg,
-                      auth_transaction, status, txt);
+                      dev->name,
+                      hdr->addr1[0], hdr->addr1[1], hdr->addr1[2],
+                      hdr->addr1[3], hdr->addr1[4], hdr->addr1[5],
+                      auth_alg, auth_transaction, status, txt);
        }
        dev_kfree_skb(skb);
 }
@@ -703,7 +704,6 @@ static void hostap_ap_tx_cb_assoc(struct sk_buff *skb, int ok, void *data)
        __le16 *pos;
        struct sta_info *sta = NULL;
        char *txt = NULL;
-       DECLARE_MAC_BUF(mac);
 
        if (ap->local->hostapd) {
                dev_kfree_skb(skb);
@@ -754,8 +754,11 @@ static void hostap_ap_tx_cb_assoc(struct sk_buff *skb, int ok, void *data)
        if (sta)
                atomic_dec(&sta->users);
        if (txt) {
-               PDEBUG(DEBUG_AP, "%s: %s assoc_cb - %s\n",
-                      dev->name, print_mac(mac, hdr->addr1), txt);
+               PDEBUG(DEBUG_AP, "%s: " MAC_FMT " assoc_cb - %s\n",
+                      dev->name,
+                      hdr->addr1[0], hdr->addr1[1], hdr->addr1[2],
+                      hdr->addr1[3], hdr->addr1[4], hdr->addr1[5],
+                      txt);
        }
        dev_kfree_skb(skb);
 }
@@ -767,7 +770,6 @@ static void hostap_ap_tx_cb_poll(struct sk_buff *skb, int ok, void *data)
        struct ap_data *ap = data;
        struct ieee80211_hdr_4addr *hdr;
        struct sta_info *sta;
-       DECLARE_MAC_BUF(mac);
 
        if (skb->len < 24)
                goto fail;
@@ -779,9 +781,11 @@ static void hostap_ap_tx_cb_poll(struct sk_buff *skb, int ok, void *data)
                        sta->flags &= ~WLAN_STA_PENDING_POLL;
                spin_unlock(&ap->sta_table_lock);
        } else {
-               PDEBUG(DEBUG_AP, "%s: STA %s"
+               PDEBUG(DEBUG_AP, "%s: STA " MAC_FMT
                       " did not ACK activity poll frame\n",
-                      ap->local->dev->name, print_mac(mac, hdr->addr1));
+                      ap->local->dev->name,
+                      hdr->addr1[0], hdr->addr1[1], hdr->addr1[2],
+                      hdr->addr1[3], hdr->addr1[4], hdr->addr1[5]);
        }
 
  fail:
@@ -1306,7 +1310,6 @@ static void handle_authen(local_info_t *local, struct sk_buff *skb,
        struct sta_info *sta = NULL;
        struct ieee80211_crypt_data *crypt;
        char *txt = "";
-       DECLARE_MAC_BUF(mac);
 
        len = skb->len - IEEE80211_MGMT_HDR_LEN;
 
@@ -1315,8 +1318,9 @@ static void handle_authen(local_info_t *local, struct sk_buff *skb,
 
        if (len < 6) {
                PDEBUG(DEBUG_AP, "%s: handle_authen - too short payload "
-                      "(len=%d) from %s\n", dev->name, len,
-                      print_mac(mac, hdr->addr2));
+                      "(len=%d) from " MAC_FMT "\n", dev->name, len,
+                      hdr->addr2[0], hdr->addr2[1], hdr->addr2[2],
+                      hdr->addr2[3], hdr->addr2[4], hdr->addr2[5]);
                return;
        }
 
@@ -1381,8 +1385,10 @@ static void handle_authen(local_info_t *local, struct sk_buff *skb,
                if (time_after(jiffies, sta->u.ap.last_beacon +
                               (10 * sta->listen_interval * HZ) / 1024)) {
                        PDEBUG(DEBUG_AP, "%s: no beacons received for a while,"
-                              " assuming AP %s is now STA\n",
-                              dev->name, print_mac(mac, sta->addr));
+                              " assuming AP " MAC_FMT " is now STA\n",
+                              dev->name,
+                              sta->addr[0], sta->addr[1], sta->addr[2],
+                              sta->addr[3], sta->addr[4], sta->addr[5]);
                        sta->ap = 0;
                        sta->flags = 0;
                        sta->u.sta.challenge = NULL;
@@ -1497,10 +1503,13 @@ static void handle_authen(local_info_t *local, struct sk_buff *skb,
        }
 
        if (resp) {
-               PDEBUG(DEBUG_AP, "%s: %s auth (alg=%d "
+               PDEBUG(DEBUG_AP, "%s: " MAC_FMT " auth (alg=%d "
                       "trans#=%d stat=%d len=%d fc=%04x) ==> %d (%s)\n",
-                      dev->name, print_mac(mac, hdr->addr2), auth_alg,
-                      auth_transaction, status_code, len, fc, resp, txt);
+                      dev->name,
+                      hdr->addr2[0], hdr->addr2[1], hdr->addr2[2],
+                      hdr->addr2[3], hdr->addr2[4], hdr->addr2[5],
+                      auth_alg, auth_transaction, status_code, len,
+                      fc, resp, txt);
        }
 }
 
@@ -1519,14 +1528,15 @@ static void handle_assoc(local_info_t *local, struct sk_buff *skb,
        int send_deauth = 0;
        char *txt = "";
        u8 prev_ap[ETH_ALEN];
-       DECLARE_MAC_BUF(mac);
 
        left = len = skb->len - IEEE80211_MGMT_HDR_LEN;
 
        if (len < (reassoc ? 10 : 4)) {
                PDEBUG(DEBUG_AP, "%s: handle_assoc - too short payload "
-                      "(len=%d, reassoc=%d) from %s\n",
-                      dev->name, len, reassoc, print_mac(mac, hdr->addr2));
+                      "(len=%d, reassoc=%d) from " MAC_FMT "\n",
+                      dev->name, len, reassoc,
+                      hdr->addr2[0], hdr->addr2[1], hdr->addr2[2],
+                      hdr->addr2[3], hdr->addr2[4], hdr->addr2[5]);
                return;
        }
 
@@ -1603,9 +1613,12 @@ static void handle_assoc(local_info_t *local, struct sk_buff *skb,
                }
 
                if (left > 0) {
-                       PDEBUG(DEBUG_AP, "%s: assoc from %s"
+                       PDEBUG(DEBUG_AP, "%s: assoc from " MAC_FMT
                               " with extra data (%d bytes) [",
-                              dev->name, print_mac(mac, hdr->addr2), left);
+                              dev->name,
+                              hdr->addr2[0], hdr->addr2[1], hdr->addr2[2],
+                              hdr->addr2[3], hdr->addr2[4], hdr->addr2[5],
+                              left);
                        while (left > 0) {
                                PDEBUG2(DEBUG_AP, "<%02x>", *u);
                                u++; left--;
@@ -1704,10 +1717,15 @@ static void handle_assoc(local_info_t *local, struct sk_buff *skb,
        }
 
 #if 0
-       PDEBUG(DEBUG_AP, "%s: %s %sassoc (len=%d "
-              "prev_ap=%s) => %d(%d) (%s)\n",
-              dev->name, print_mac(mac, hdr->addr2), reassoc ? "re" : "", len,
-              print_mac(mac, prev_ap), resp, send_deauth, txt);
+       PDEBUG(DEBUG_AP, "%s: " MAC_FMT" %sassoc (len=%d "
+              "prev_ap=" MAC_FMT") => %d(%d) (%s)\n",
+              dev->name,
+              hdr->addr2[0], hdr->addr2[1], hdr->addr2[2],
+              hdr->addr2[3], hdr->addr2[4], hdr->addr2[5],
+              reassoc ? "re" : "", len,
+              prev_ap[0], prev_ap[1], prev_ap[2],
+              prev_ap[3], prev_ap[4], prev_ap[5],
+              resp, send_deauth, txt);
 #endif
 }
 
@@ -1735,9 +1753,11 @@ static void handle_deauth(local_info_t *local, struct sk_buff *skb,
        pos = (__le16 *) body;
        reason_code = le16_to_cpu(*pos);
 
-       PDEBUG(DEBUG_AP, "%s: deauthentication: %s len=%d, "
-              "reason_code=%d\n", dev->name, print_mac(mac, hdr->addr2), len,
-              reason_code);
+       PDEBUG(DEBUG_AP, "%s: deauthentication: " MAC_FMT " len=%d, "
+              "reason_code=%d\n", dev->name,
+              hdr->addr2[0], hdr->addr2[1], hdr->addr2[2],
+              hdr->addr2[3], hdr->addr2[4], hdr->addr2[5],
+              len, reason_code);
 
        spin_lock_bh(&local->ap->sta_table_lock);
        sta = ap_get_sta(local->ap, hdr->addr2);
@@ -1748,9 +1768,11 @@ static void handle_deauth(local_info_t *local, struct sk_buff *skb,
        }
        spin_unlock_bh(&local->ap->sta_table_lock);
        if (sta == NULL) {
-               printk("%s: deauthentication from %s, "
+               printk("%s: deauthentication from " MAC_FMT ", "
               "reason_code=%d, but STA not authenticated\n", dev->name,
-                      print_mac(mac, hdr->addr2), reason_code);
+                      hdr->addr2[0], hdr->addr2[1], hdr->addr2[2],
+                      hdr->addr2[3], hdr->addr2[4], hdr->addr2[5],
+                      reason_code);
        }
 }
 
@@ -1766,7 +1788,6 @@ static void handle_disassoc(local_info_t *local, struct sk_buff *skb,
        u16 reason_code;
        __le16 *pos;
        struct sta_info *sta = NULL;
-       DECLARE_MAC_BUF(mac);
 
        len = skb->len - IEEE80211_MGMT_HDR_LEN;
 
@@ -1778,9 +1799,11 @@ static void handle_disassoc(local_info_t *local, struct sk_buff *skb,
        pos = (__le16 *) body;
        reason_code = le16_to_cpu(*pos);
 
-       PDEBUG(DEBUG_AP, "%s: disassociation: %s len=%d, "
-              "reason_code=%d\n", dev->name, print_mac(mac, hdr->addr2), len,
-              reason_code);
+       PDEBUG(DEBUG_AP, "%s: disassociation: " MAC_FMT " len=%d, "
+              "reason_code=%d\n", dev->name,
+              hdr->addr2[0], hdr->addr2[1], hdr->addr2[2],
+              hdr->addr2[3], hdr->addr2[4], hdr->addr2[5],
+              len, reason_code);
 
        spin_lock_bh(&local->ap->sta_table_lock);
        sta = ap_get_sta(local->ap, hdr->addr2);
@@ -1791,9 +1814,12 @@ static void handle_disassoc(local_info_t *local, struct sk_buff *skb,
        }
        spin_unlock_bh(&local->ap->sta_table_lock);
        if (sta == NULL) {
-               printk("%s: disassociation from %s, "
+               printk("%s: disassociation from " MAC_FMT ", "
                       "reason_code=%d, but STA not authenticated\n",
-                      dev->name, print_mac(mac, hdr->addr2), reason_code);
+                      dev->name,
+                      hdr->addr2[0], hdr->addr2[1], hdr->addr2[2],
+                      hdr->addr2[3], hdr->addr2[4], hdr->addr2[5],
+                      reason_code);
        }
 }
 
@@ -1882,16 +1908,20 @@ static void handle_pspoll(local_info_t *local,
        struct sta_info *sta;
        u16 aid;
        struct sk_buff *skb;
-       DECLARE_MAC_BUF(mac);
 
-       PDEBUG(DEBUG_PS2, "handle_pspoll: BSSID=%s"
-              ", TA=%s PWRMGT=%d\n",
-              print_mac(mac, hdr->addr1), print_mac(mac, hdr->addr2),
+       PDEBUG(DEBUG_PS2, "handle_pspoll: BSSID=" MAC_FMT
+              ", TA=" MAC_FMT " PWRMGT=%d\n",
+              hdr->addr1[0], hdr->addr1[1], hdr->addr1[2],
+              hdr->addr1[3], hdr->addr1[4], hdr->addr1[5],
+              hdr->addr2[0], hdr->addr2[1], hdr->addr2[2],
+              hdr->addr2[3], hdr->addr2[4], hdr->addr2[5],
               !!(le16_to_cpu(hdr->frame_ctl) & IEEE80211_FCTL_PM));
 
        if (memcmp(hdr->addr1, dev->dev_addr, ETH_ALEN)) {
-               PDEBUG(DEBUG_AP, "handle_pspoll - addr1(BSSID)=%s"
-                      " not own MAC\n", print_mac(mac, hdr->addr1));
+               PDEBUG(DEBUG_AP, "handle_pspoll - addr1(BSSID)=" MAC_FMT
+                      " not own MAC\n",
+                      hdr->addr1[0], hdr->addr1[1], hdr->addr1[2],
+                      hdr->addr1[3], hdr->addr1[4], hdr->addr1[5]);
                return;
        }
 
@@ -1900,7 +1930,7 @@ static void handle_pspoll(local_info_t *local,
                PDEBUG(DEBUG_PS, "   PSPOLL and AID[15:14] not set\n");
                return;
        }
-       aid &= ~BIT(15) & ~BIT(14);
+       aid &= ~(BIT(15) | BIT(14));
        if (aid == 0 || aid > MAX_AID_TABLE_SIZE) {
                PDEBUG(DEBUG_PS, "   invalid aid=%d\n", aid);
                return;
@@ -1969,7 +1999,6 @@ static void handle_wds_oper_queue(struct work_struct *work)
                                          wds_oper_queue);
        local_info_t *local = ap->local;
        struct wds_oper_data *entry, *prev;
-       DECLARE_MAC_BUF(mac);
 
        spin_lock_bh(&local->lock);
        entry = local->ap->wds_oper_entries;
@@ -1978,10 +2007,11 @@ static void handle_wds_oper_queue(struct work_struct *work)
 
        while (entry) {
                PDEBUG(DEBUG_AP, "%s: %s automatic WDS connection "
-                      "to AP %s\n",
+                      "to AP " MAC_FMT "\n",
                       local->dev->name,
                       entry->type == WDS_ADD ? "adding" : "removing",
-                      print_mac(mac, entry->addr));
+                      entry->addr[0], entry->addr[1], entry->addr[2],
+                      entry->addr[3], entry->addr[4], entry->addr[5]);
                if (entry->type == WDS_ADD)
                        prism2_wds_add(local, entry->addr, 0);
                else if (entry->type == WDS_DEL)
@@ -2158,7 +2188,6 @@ static void handle_ap_item(local_info_t *local, struct sk_buff *skb,
 #endif /* PRISM2_NO_KERNEL_IEEE80211_MGMT */
        u16 fc, type, stype;
        struct ieee80211_hdr_4addr *hdr;
-       DECLARE_MAC_BUF(mac);
 
        /* FIX: should give skb->len to handler functions and check that the
         * buffer is long enough */
@@ -2187,8 +2216,9 @@ static void handle_ap_item(local_info_t *local, struct sk_buff *skb,
 
                if (memcmp(hdr->addr1, dev->dev_addr, ETH_ALEN)) {
                        PDEBUG(DEBUG_AP, "handle_ap_item - addr1(BSSID)="
-                              "%s not own MAC\n",
-                              print_mac(mac, hdr->addr1));
+                              MAC_FMT " not own MAC\n",
+                              hdr->addr1[0], hdr->addr1[1], hdr->addr1[2],
+                              hdr->addr1[3], hdr->addr1[4], hdr->addr1[5]);
                        goto done;
                }
 
@@ -2224,14 +2254,18 @@ static void handle_ap_item(local_info_t *local, struct sk_buff *skb,
        }
 
        if (memcmp(hdr->addr1, dev->dev_addr, ETH_ALEN)) {
-               PDEBUG(DEBUG_AP, "handle_ap_item - addr1(DA)=%s"
-                      " not own MAC\n", print_mac(mac, hdr->addr1));
+               PDEBUG(DEBUG_AP, "handle_ap_item - addr1(DA)=" MAC_FMT
+                      " not own MAC\n",
+                      hdr->addr1[0], hdr->addr1[1], hdr->addr1[2],
+                      hdr->addr1[3], hdr->addr1[4], hdr->addr1[5]);
                goto done;
        }
 
        if (memcmp(hdr->addr3, dev->dev_addr, ETH_ALEN)) {
-               PDEBUG(DEBUG_AP, "handle_ap_item - addr3(BSSID)=%s"
-                      " not own MAC\n", print_mac(mac, hdr->addr3));
+               PDEBUG(DEBUG_AP, "handle_ap_item - addr3(BSSID)=" MAC_FMT
+                      " not own MAC\n",
+                      hdr->addr3[0], hdr->addr3[1], hdr->addr3[2],
+                      hdr->addr3[3], hdr->addr3[4], hdr->addr3[5]);
                goto done;
        }
 
@@ -2312,7 +2346,6 @@ static void schedule_packet_send(local_info_t *local, struct sta_info *sta)
        struct sk_buff *skb;
        struct ieee80211_hdr_4addr *hdr;
        struct hostap_80211_rx_status rx_stats;
-       DECLARE_MAC_BUF(mac);
 
        if (skb_queue_empty(&sta->tx_buf))
                return;
@@ -2334,7 +2367,9 @@ static void schedule_packet_send(local_info_t *local, struct sta_info *sta)
        hdr->duration_id = cpu_to_le16(sta->aid | BIT(15) | BIT(14));
 
        PDEBUG(DEBUG_PS2, "%s: Scheduling buffered packet delivery for STA "
-              "%s\n", local->dev->name, print_mac(mac, sta->addr));
+              MAC_FMT "\n", local->dev->name,
+              sta->addr[0], sta->addr[1], sta->addr[2],
+              sta->addr[3], sta->addr[4], sta->addr[5]);
 
        skb->dev = local->dev;
 
@@ -2385,7 +2420,8 @@ int prism2_ap_get_sta_qual(local_info_t *local, struct sockaddr addr[],
 
 /* Translate our list of Access Points & Stations to a card independant
  * format that the Wireless Tools will understand - Jean II */
-int prism2_ap_translate_scan(struct net_device *dev, char *buffer)
+int prism2_ap_translate_scan(struct net_device *dev,
+                            struct iw_request_info *info, char *buffer)
 {
        struct hostap_interface *iface;
        local_info_t *local;
@@ -2414,8 +2450,8 @@ int prism2_ap_translate_scan(struct net_device *dev, char *buffer)
                iwe.u.ap_addr.sa_family = ARPHRD_ETHER;
                memcpy(iwe.u.ap_addr.sa_data, sta->addr, ETH_ALEN);
                iwe.len = IW_EV_ADDR_LEN;
-               current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe,
-                                                 IW_EV_ADDR_LEN);
+               current_ev = iwe_stream_add_event(info, current_ev, end_buf,
+                                                 &iwe, IW_EV_ADDR_LEN);
 
                /* Use the mode to indicate if it's a station or
                 * an Access Point */
@@ -2426,8 +2462,8 @@ int prism2_ap_translate_scan(struct net_device *dev, char *buffer)
                else
                        iwe.u.mode = IW_MODE_INFRA;
                iwe.len = IW_EV_UINT_LEN;
-               current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe,
-                                                 IW_EV_UINT_LEN);
+               current_ev = iwe_stream_add_event(info, current_ev, end_buf,
+                                                 &iwe, IW_EV_UINT_LEN);
 
                /* Some quality */
                memset(&iwe, 0, sizeof(iwe));
@@ -2442,8 +2478,8 @@ int prism2_ap_translate_scan(struct net_device *dev, char *buffer)
                iwe.u.qual.noise = HFA384X_LEVEL_TO_dBm(sta->last_rx_silence);
                iwe.u.qual.updated = sta->last_rx_updated;
                iwe.len = IW_EV_QUAL_LEN;
-               current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe,
-                                                 IW_EV_QUAL_LEN);
+               current_ev = iwe_stream_add_event(info, current_ev, end_buf,
+                                                 &iwe, IW_EV_QUAL_LEN);
 
 #ifndef PRISM2_NO_KERNEL_IEEE80211_MGMT
                if (sta->ap) {
@@ -2451,8 +2487,8 @@ int prism2_ap_translate_scan(struct net_device *dev, char *buffer)
                        iwe.cmd = SIOCGIWESSID;
                        iwe.u.data.length = sta->u.ap.ssid_len;
                        iwe.u.data.flags = 1;
-                       current_ev = iwe_stream_add_point(current_ev, end_buf,
-                                                         &iwe,
+                       current_ev = iwe_stream_add_point(info, current_ev,
+                                                         end_buf, &iwe,
                                                          sta->u.ap.ssid);
 
                        memset(&iwe, 0, sizeof(iwe));
@@ -2462,10 +2498,9 @@ int prism2_ap_translate_scan(struct net_device *dev, char *buffer)
                                        IW_ENCODE_ENABLED | IW_ENCODE_NOKEY;
                        else
                                iwe.u.data.flags = IW_ENCODE_DISABLED;
-                       current_ev = iwe_stream_add_point(current_ev, end_buf,
-                                                         &iwe,
-                                                         sta->u.ap.ssid
-                                                         /* 0 byte memcpy */);
+                       current_ev = iwe_stream_add_point(info, current_ev,
+                                                         end_buf, &iwe,
+                                                         sta->u.ap.ssid);
 
                        if (sta->u.ap.channel > 0 &&
                            sta->u.ap.channel <= FREQ_COUNT) {
@@ -2475,7 +2510,7 @@ int prism2_ap_translate_scan(struct net_device *dev, char *buffer)
                                        * 100000;
                                iwe.u.freq.e = 1;
                                current_ev = iwe_stream_add_event(
-                                       current_ev, end_buf, &iwe,
+                                       info, current_ev, end_buf, &iwe,
                                        IW_EV_FREQ_LEN);
                        }
 
@@ -2484,8 +2519,8 @@ int prism2_ap_translate_scan(struct net_device *dev, char *buffer)
                        sprintf(buf, "beacon_interval=%d",
                                sta->listen_interval);
                        iwe.u.data.length = strlen(buf);
-                       current_ev = iwe_stream_add_point(current_ev, end_buf,
-                                                         &iwe, buf);
+                       current_ev = iwe_stream_add_point(info, current_ev,
+                                                         end_buf, &iwe, buf);
                }
 #endif /* PRISM2_NO_KERNEL_IEEE80211_MGMT */
 
@@ -2661,7 +2696,6 @@ static int ap_update_sta_tx_rate(struct sta_info *sta, struct net_device *dev)
        int ret = sta->tx_rate;
        struct hostap_interface *iface;
        local_info_t *local;
-       DECLARE_MAC_BUF(mac);
 
        iface = netdev_priv(dev);
        local = iface->local;
@@ -2689,9 +2723,12 @@ static int ap_update_sta_tx_rate(struct sta_info *sta, struct net_device *dev)
                        case 3: sta->tx_rate = 110; break;
                        default: sta->tx_rate = 0; break;
                        }
-                       PDEBUG(DEBUG_AP, "%s: STA %s"
+                       PDEBUG(DEBUG_AP, "%s: STA " MAC_FMT
                               " TX rate raised to %d\n",
-                              dev->name, print_mac(mac, sta->addr), sta->tx_rate);
+                              dev->name,
+                              sta->addr[0], sta->addr[1], sta->addr[2],
+                              sta->addr[3], sta->addr[4], sta->addr[5],
+                              sta->tx_rate);
                }
                sta->tx_since_last_failure = 0;
        }
@@ -2709,7 +2746,6 @@ ap_tx_ret hostap_handle_sta_tx(local_info_t *local, struct hostap_tx_data *tx)
        int set_tim, ret;
        struct ieee80211_hdr_4addr *hdr;
        struct hostap_skb_tx_data *meta;
-       DECLARE_MAC_BUF(mac);
 
        meta = (struct hostap_skb_tx_data *) skb->cb;
        ret = AP_TX_CONTINUE;
@@ -2745,8 +2781,9 @@ ap_tx_ret hostap_handle_sta_tx(local_info_t *local, struct hostap_tx_data *tx)
                 * print out any errors here. */
                if (net_ratelimit()) {
                        printk(KERN_DEBUG "AP: drop packet to non-associated "
-                              "STA %s\n",
-                              print_mac(mac, hdr->addr1));
+                              "STA " MAC_FMT "\n",
+                              hdr->addr1[0], hdr->addr1[1], hdr->addr1[2],
+                              hdr->addr1[3], hdr->addr1[4], hdr->addr1[5]);
                }
 #endif
                local->ap->tx_drop_nonassoc++;
@@ -2784,9 +2821,11 @@ ap_tx_ret hostap_handle_sta_tx(local_info_t *local, struct hostap_tx_data *tx)
        }
 
        if (skb_queue_len(&sta->tx_buf) >= STA_MAX_TX_BUFFER) {
-               PDEBUG(DEBUG_PS, "%s: No more space in STA (%s"
+               PDEBUG(DEBUG_PS, "%s: No more space in STA (" MAC_FMT
                       ")'s PS mode buffer\n",
-                      local->dev->name, print_mac(mac, sta->addr));
+                      local->dev->name,
+                      sta->addr[0], sta->addr[1], sta->addr[2],
+                      sta->addr[3], sta->addr[4], sta->addr[5]);
                /* Make sure that TIM is set for the station (it might not be
                 * after AP wlan hw reset). */
                /* FIX: should fix hw reset to restore bits based on STA
@@ -2850,7 +2889,6 @@ void hostap_handle_sta_tx_exc(local_info_t *local, struct sk_buff *skb)
        struct sta_info *sta;
        struct ieee80211_hdr_4addr *hdr;
        struct hostap_skb_tx_data *meta;
-       DECLARE_MAC_BUF(mac);
 
        hdr = (struct ieee80211_hdr_4addr *) skb->data;
        meta = (struct hostap_skb_tx_data *) skb->cb;
@@ -2859,9 +2897,12 @@ void hostap_handle_sta_tx_exc(local_info_t *local, struct sk_buff *skb)
        sta = ap_get_sta(local->ap, hdr->addr1);
        if (!sta) {
                spin_unlock(&local->ap->sta_table_lock);
-               PDEBUG(DEBUG_AP, "%s: Could not find STA %s"
+               PDEBUG(DEBUG_AP, "%s: Could not find STA " MAC_FMT
                       " for this TX error (@%lu)\n",
-                      local->dev->name, print_mac(mac, hdr->addr1), jiffies);
+                      local->dev->name,
+                      hdr->addr1[0], hdr->addr1[1], hdr->addr1[2],
+                      hdr->addr1[3], hdr->addr1[4], hdr->addr1[5],
+                      jiffies);
                return;
        }
 
@@ -2888,9 +2929,11 @@ void hostap_handle_sta_tx_exc(local_info_t *local, struct sk_buff *skb)
                        case 3: sta->tx_rate = 110; break;
                        default: sta->tx_rate = 0; break;
                        }
-                       PDEBUG(DEBUG_AP, "%s: STA %s"
+                       PDEBUG(DEBUG_AP, "%s: STA " MAC_FMT
                               " TX rate lowered to %d\n",
-                              local->dev->name, print_mac(mac, sta->addr),
+                              local->dev->name,
+                              sta->addr[0], sta->addr[1], sta->addr[2],
+                              sta->addr[3], sta->addr[4], sta->addr[5],
                               sta->tx_rate);
                }
                sta->tx_consecutive_exc = 0;
@@ -2956,7 +2999,6 @@ ap_rx_ret hostap_handle_sta_rx(local_info_t *local, struct net_device *dev,
        struct sta_info *sta;
        u16 fc, type, stype;
        struct ieee80211_hdr_4addr *hdr;
-       DECLARE_MAC_BUF(mac);
 
        if (local->ap == NULL)
                return AP_RX_CONTINUE;
@@ -2988,9 +3030,12 @@ ap_rx_ret hostap_handle_sta_rx(local_info_t *local, struct net_device *dev,
                        } else {
                                printk(KERN_DEBUG "%s: dropped received packet"
                                       " from non-associated STA "
-                                      "%s"
+                                      MAC_FMT
                                       " (type=0x%02x, subtype=0x%02x)\n",
-                                      dev->name, print_mac(mac, hdr->addr2),
+                                      dev->name,
+                                      hdr->addr2[0], hdr->addr2[1],
+                                      hdr->addr2[2], hdr->addr2[3],
+                                      hdr->addr2[4], hdr->addr2[5],
                                       type >> 2, stype >> 4);
                                hostap_rx(dev, skb, rx_stats);
 #endif /* PRISM2_NO_KERNEL_IEEE80211_MGMT */
@@ -3025,8 +3070,11 @@ ap_rx_ret hostap_handle_sta_rx(local_info_t *local, struct net_device *dev,
                         * being associated. */
                        printk(KERN_DEBUG "%s: rejected received nullfunc "
                               "frame without ToDS from not associated STA "
-                              "%s\n",
-                              dev->name, print_mac(mac, hdr->addr2));
+                              MAC_FMT "\n",
+                              dev->name,
+                              hdr->addr2[0], hdr->addr2[1],
+                              hdr->addr2[2], hdr->addr2[3],
+                              hdr->addr2[4], hdr->addr2[5]);
                        hostap_rx(dev, skb, rx_stats);
 #endif /* PRISM2_NO_KERNEL_IEEE80211_MGMT */
                }
@@ -3043,9 +3091,12 @@ ap_rx_ret hostap_handle_sta_rx(local_info_t *local, struct net_device *dev,
                 * If BSSID is own, report the dropping of this frame. */
                if (memcmp(hdr->addr3, dev->dev_addr, ETH_ALEN) == 0) {
                        printk(KERN_DEBUG "%s: dropped received packet from "
-                              "%s with no ToDS flag "
+                              MAC_FMT " with no ToDS flag "
                               "(type=0x%02x, subtype=0x%02x)\n", dev->name,
-                              print_mac(mac, hdr->addr2), type >> 2, stype >> 4);
+                              hdr->addr2[0], hdr->addr2[1],
+                              hdr->addr2[2], hdr->addr2[3],
+                              hdr->addr2[4], hdr->addr2[5],
+                              type >> 2, stype >> 4);
                        hostap_dump_rx_80211(dev->name, skb, rx_stats);
                }
                ret = AP_RX_DROP;