diff options
Diffstat (limited to 'net/mac80211/ieee80211_sta.c')
-rw-r--r-- | net/mac80211/ieee80211_sta.c | 180 |
1 files changed, 101 insertions, 79 deletions
diff --git a/net/mac80211/ieee80211_sta.c b/net/mac80211/ieee80211_sta.c index 8fdbd38e02c4..f47cbd294ceb 100644 --- a/net/mac80211/ieee80211_sta.c +++ b/net/mac80211/ieee80211_sta.c | |||
@@ -319,14 +319,15 @@ static void ieee80211_handle_erp_ie(struct net_device *dev, u8 erp_value) | |||
319 | int use_protection = (erp_value & WLAN_ERP_USE_PROTECTION) != 0; | 319 | int use_protection = (erp_value & WLAN_ERP_USE_PROTECTION) != 0; |
320 | int preamble_mode = (erp_value & WLAN_ERP_BARKER_PREAMBLE) != 0; | 320 | int preamble_mode = (erp_value & WLAN_ERP_BARKER_PREAMBLE) != 0; |
321 | u8 changes = 0; | 321 | u8 changes = 0; |
322 | DECLARE_MAC_BUF(mac); | ||
322 | 323 | ||
323 | if (use_protection != !!(sdata->flags & IEEE80211_SDATA_USE_PROTECTION)) { | 324 | if (use_protection != !!(sdata->flags & IEEE80211_SDATA_USE_PROTECTION)) { |
324 | if (net_ratelimit()) { | 325 | if (net_ratelimit()) { |
325 | printk(KERN_DEBUG "%s: CTS protection %s (BSSID=" | 326 | printk(KERN_DEBUG "%s: CTS protection %s (BSSID=" |
326 | MAC_FMT ")\n", | 327 | "%s)\n", |
327 | dev->name, | 328 | dev->name, |
328 | use_protection ? "enabled" : "disabled", | 329 | use_protection ? "enabled" : "disabled", |
329 | MAC_ARG(ifsta->bssid)); | 330 | print_mac(mac, ifsta->bssid)); |
330 | } | 331 | } |
331 | if (use_protection) | 332 | if (use_protection) |
332 | sdata->flags |= IEEE80211_SDATA_USE_PROTECTION; | 333 | sdata->flags |= IEEE80211_SDATA_USE_PROTECTION; |
@@ -338,11 +339,11 @@ static void ieee80211_handle_erp_ie(struct net_device *dev, u8 erp_value) | |||
338 | if (preamble_mode != !(sdata->flags & IEEE80211_SDATA_SHORT_PREAMBLE)) { | 339 | if (preamble_mode != !(sdata->flags & IEEE80211_SDATA_SHORT_PREAMBLE)) { |
339 | if (net_ratelimit()) { | 340 | if (net_ratelimit()) { |
340 | printk(KERN_DEBUG "%s: switched to %s barker preamble" | 341 | printk(KERN_DEBUG "%s: switched to %s barker preamble" |
341 | " (BSSID=" MAC_FMT ")\n", | 342 | " (BSSID=%s)\n", |
342 | dev->name, | 343 | dev->name, |
343 | (preamble_mode == WLAN_ERP_PREAMBLE_SHORT) ? | 344 | (preamble_mode == WLAN_ERP_PREAMBLE_SHORT) ? |
344 | "short" : "long", | 345 | "short" : "long", |
345 | MAC_ARG(ifsta->bssid)); | 346 | print_mac(mac, ifsta->bssid)); |
346 | } | 347 | } |
347 | if (preamble_mode) | 348 | if (preamble_mode) |
348 | sdata->flags &= ~IEEE80211_SDATA_SHORT_PREAMBLE; | 349 | sdata->flags &= ~IEEE80211_SDATA_SHORT_PREAMBLE; |
@@ -524,18 +525,20 @@ static void ieee80211_send_auth(struct net_device *dev, | |||
524 | static void ieee80211_authenticate(struct net_device *dev, | 525 | static void ieee80211_authenticate(struct net_device *dev, |
525 | struct ieee80211_if_sta *ifsta) | 526 | struct ieee80211_if_sta *ifsta) |
526 | { | 527 | { |
528 | DECLARE_MAC_BUF(mac); | ||
529 | |||
527 | ifsta->auth_tries++; | 530 | ifsta->auth_tries++; |
528 | if (ifsta->auth_tries > IEEE80211_AUTH_MAX_TRIES) { | 531 | if (ifsta->auth_tries > IEEE80211_AUTH_MAX_TRIES) { |
529 | printk(KERN_DEBUG "%s: authentication with AP " MAC_FMT | 532 | printk(KERN_DEBUG "%s: authentication with AP %s" |
530 | " timed out\n", | 533 | " timed out\n", |
531 | dev->name, MAC_ARG(ifsta->bssid)); | 534 | dev->name, print_mac(mac, ifsta->bssid)); |
532 | ifsta->state = IEEE80211_DISABLED; | 535 | ifsta->state = IEEE80211_DISABLED; |
533 | return; | 536 | return; |
534 | } | 537 | } |
535 | 538 | ||
536 | ifsta->state = IEEE80211_AUTHENTICATE; | 539 | ifsta->state = IEEE80211_AUTHENTICATE; |
537 | printk(KERN_DEBUG "%s: authenticate with AP " MAC_FMT "\n", | 540 | printk(KERN_DEBUG "%s: authenticate with AP %s\n", |
538 | dev->name, MAC_ARG(ifsta->bssid)); | 541 | dev->name, print_mac(mac, ifsta->bssid)); |
539 | 542 | ||
540 | ieee80211_send_auth(dev, ifsta, 1, NULL, 0, 0); | 543 | ieee80211_send_auth(dev, ifsta, 1, NULL, 0, 0); |
541 | 544 | ||
@@ -744,18 +747,20 @@ static int ieee80211_privacy_mismatch(struct net_device *dev, | |||
744 | static void ieee80211_associate(struct net_device *dev, | 747 | static void ieee80211_associate(struct net_device *dev, |
745 | struct ieee80211_if_sta *ifsta) | 748 | struct ieee80211_if_sta *ifsta) |
746 | { | 749 | { |
750 | DECLARE_MAC_BUF(mac); | ||
751 | |||
747 | ifsta->assoc_tries++; | 752 | ifsta->assoc_tries++; |
748 | if (ifsta->assoc_tries > IEEE80211_ASSOC_MAX_TRIES) { | 753 | if (ifsta->assoc_tries > IEEE80211_ASSOC_MAX_TRIES) { |
749 | printk(KERN_DEBUG "%s: association with AP " MAC_FMT | 754 | printk(KERN_DEBUG "%s: association with AP %s" |
750 | " timed out\n", | 755 | " timed out\n", |
751 | dev->name, MAC_ARG(ifsta->bssid)); | 756 | dev->name, print_mac(mac, ifsta->bssid)); |
752 | ifsta->state = IEEE80211_DISABLED; | 757 | ifsta->state = IEEE80211_DISABLED; |
753 | return; | 758 | return; |
754 | } | 759 | } |
755 | 760 | ||
756 | ifsta->state = IEEE80211_ASSOCIATE; | 761 | ifsta->state = IEEE80211_ASSOCIATE; |
757 | printk(KERN_DEBUG "%s: associate with AP " MAC_FMT "\n", | 762 | printk(KERN_DEBUG "%s: associate with AP %s\n", |
758 | dev->name, MAC_ARG(ifsta->bssid)); | 763 | dev->name, print_mac(mac, ifsta->bssid)); |
759 | if (ieee80211_privacy_mismatch(dev, ifsta)) { | 764 | if (ieee80211_privacy_mismatch(dev, ifsta)) { |
760 | printk(KERN_DEBUG "%s: mismatch in privacy configuration and " | 765 | printk(KERN_DEBUG "%s: mismatch in privacy configuration and " |
761 | "mixed-cell disabled - abort association\n", dev->name); | 766 | "mixed-cell disabled - abort association\n", dev->name); |
@@ -775,6 +780,7 @@ static void ieee80211_associated(struct net_device *dev, | |||
775 | struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr); | 780 | struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr); |
776 | struct sta_info *sta; | 781 | struct sta_info *sta; |
777 | int disassoc; | 782 | int disassoc; |
783 | DECLARE_MAC_BUF(mac); | ||
778 | 784 | ||
779 | /* TODO: start monitoring current AP signal quality and number of | 785 | /* TODO: start monitoring current AP signal quality and number of |
780 | * missed beacons. Scan other channels every now and then and search | 786 | * missed beacons. Scan other channels every now and then and search |
@@ -785,8 +791,8 @@ static void ieee80211_associated(struct net_device *dev, | |||
785 | 791 | ||
786 | sta = sta_info_get(local, ifsta->bssid); | 792 | sta = sta_info_get(local, ifsta->bssid); |
787 | if (!sta) { | 793 | if (!sta) { |
788 | printk(KERN_DEBUG "%s: No STA entry for own AP " MAC_FMT "\n", | 794 | printk(KERN_DEBUG "%s: No STA entry for own AP %s\n", |
789 | dev->name, MAC_ARG(ifsta->bssid)); | 795 | dev->name, print_mac(mac, ifsta->bssid)); |
790 | disassoc = 1; | 796 | disassoc = 1; |
791 | } else { | 797 | } else { |
792 | disassoc = 0; | 798 | disassoc = 0; |
@@ -794,9 +800,9 @@ static void ieee80211_associated(struct net_device *dev, | |||
794 | sta->last_rx + IEEE80211_MONITORING_INTERVAL)) { | 800 | sta->last_rx + IEEE80211_MONITORING_INTERVAL)) { |
795 | if (ifsta->flags & IEEE80211_STA_PROBEREQ_POLL) { | 801 | if (ifsta->flags & IEEE80211_STA_PROBEREQ_POLL) { |
796 | printk(KERN_DEBUG "%s: No ProbeResp from " | 802 | printk(KERN_DEBUG "%s: No ProbeResp from " |
797 | "current AP " MAC_FMT " - assume out of " | 803 | "current AP %s - assume out of " |
798 | "range\n", | 804 | "range\n", |
799 | dev->name, MAC_ARG(ifsta->bssid)); | 805 | dev->name, print_mac(mac, ifsta->bssid)); |
800 | disassoc = 1; | 806 | disassoc = 1; |
801 | sta_info_free(sta); | 807 | sta_info_free(sta); |
802 | } else | 808 | } else |
@@ -944,37 +950,38 @@ static void ieee80211_rx_mgmt_auth(struct net_device *dev, | |||
944 | { | 950 | { |
945 | struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); | 951 | struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); |
946 | u16 auth_alg, auth_transaction, status_code; | 952 | u16 auth_alg, auth_transaction, status_code; |
953 | DECLARE_MAC_BUF(mac); | ||
947 | 954 | ||
948 | if (ifsta->state != IEEE80211_AUTHENTICATE && | 955 | if (ifsta->state != IEEE80211_AUTHENTICATE && |
949 | sdata->type != IEEE80211_IF_TYPE_IBSS) { | 956 | sdata->type != IEEE80211_IF_TYPE_IBSS) { |
950 | printk(KERN_DEBUG "%s: authentication frame received from " | 957 | printk(KERN_DEBUG "%s: authentication frame received from " |
951 | MAC_FMT ", but not in authenticate state - ignored\n", | 958 | "%s, but not in authenticate state - ignored\n", |
952 | dev->name, MAC_ARG(mgmt->sa)); | 959 | dev->name, print_mac(mac, mgmt->sa)); |
953 | return; | 960 | return; |
954 | } | 961 | } |
955 | 962 | ||
956 | if (len < 24 + 6) { | 963 | if (len < 24 + 6) { |
957 | printk(KERN_DEBUG "%s: too short (%zd) authentication frame " | 964 | printk(KERN_DEBUG "%s: too short (%zd) authentication frame " |
958 | "received from " MAC_FMT " - ignored\n", | 965 | "received from %s - ignored\n", |
959 | dev->name, len, MAC_ARG(mgmt->sa)); | 966 | dev->name, len, print_mac(mac, mgmt->sa)); |
960 | return; | 967 | return; |
961 | } | 968 | } |
962 | 969 | ||
963 | if (sdata->type != IEEE80211_IF_TYPE_IBSS && | 970 | if (sdata->type != IEEE80211_IF_TYPE_IBSS && |
964 | memcmp(ifsta->bssid, mgmt->sa, ETH_ALEN) != 0) { | 971 | memcmp(ifsta->bssid, mgmt->sa, ETH_ALEN) != 0) { |
965 | printk(KERN_DEBUG "%s: authentication frame received from " | 972 | printk(KERN_DEBUG "%s: authentication frame received from " |
966 | "unknown AP (SA=" MAC_FMT " BSSID=" MAC_FMT ") - " | 973 | "unknown AP (SA=%s BSSID=%s) - " |
967 | "ignored\n", dev->name, MAC_ARG(mgmt->sa), | 974 | "ignored\n", dev->name, print_mac(mac, mgmt->sa), |
968 | MAC_ARG(mgmt->bssid)); | 975 | print_mac(mac, mgmt->bssid)); |
969 | return; | 976 | return; |
970 | } | 977 | } |
971 | 978 | ||
972 | if (sdata->type != IEEE80211_IF_TYPE_IBSS && | 979 | if (sdata->type != IEEE80211_IF_TYPE_IBSS && |
973 | memcmp(ifsta->bssid, mgmt->bssid, ETH_ALEN) != 0) { | 980 | memcmp(ifsta->bssid, mgmt->bssid, ETH_ALEN) != 0) { |
974 | printk(KERN_DEBUG "%s: authentication frame received from " | 981 | printk(KERN_DEBUG "%s: authentication frame received from " |
975 | "unknown BSSID (SA=" MAC_FMT " BSSID=" MAC_FMT ") - " | 982 | "unknown BSSID (SA=%s BSSID=%s) - " |
976 | "ignored\n", dev->name, MAC_ARG(mgmt->sa), | 983 | "ignored\n", dev->name, print_mac(mac, mgmt->sa), |
977 | MAC_ARG(mgmt->bssid)); | 984 | print_mac(mac, mgmt->bssid)); |
978 | return; | 985 | return; |
979 | } | 986 | } |
980 | 987 | ||
@@ -982,9 +989,9 @@ static void ieee80211_rx_mgmt_auth(struct net_device *dev, | |||
982 | auth_transaction = le16_to_cpu(mgmt->u.auth.auth_transaction); | 989 | auth_transaction = le16_to_cpu(mgmt->u.auth.auth_transaction); |
983 | status_code = le16_to_cpu(mgmt->u.auth.status_code); | 990 | status_code = le16_to_cpu(mgmt->u.auth.status_code); |
984 | 991 | ||
985 | printk(KERN_DEBUG "%s: RX authentication from " MAC_FMT " (alg=%d " | 992 | printk(KERN_DEBUG "%s: RX authentication from %s (alg=%d " |
986 | "transaction=%d status=%d)\n", | 993 | "transaction=%d status=%d)\n", |
987 | dev->name, MAC_ARG(mgmt->sa), auth_alg, | 994 | dev->name, print_mac(mac, mgmt->sa), auth_alg, |
988 | auth_transaction, status_code); | 995 | auth_transaction, status_code); |
989 | 996 | ||
990 | if (sdata->type == IEEE80211_IF_TYPE_IBSS) { | 997 | if (sdata->type == IEEE80211_IF_TYPE_IBSS) { |
@@ -1071,27 +1078,28 @@ static void ieee80211_rx_mgmt_deauth(struct net_device *dev, | |||
1071 | size_t len) | 1078 | size_t len) |
1072 | { | 1079 | { |
1073 | u16 reason_code; | 1080 | u16 reason_code; |
1081 | DECLARE_MAC_BUF(mac); | ||
1074 | 1082 | ||
1075 | if (len < 24 + 2) { | 1083 | if (len < 24 + 2) { |
1076 | printk(KERN_DEBUG "%s: too short (%zd) deauthentication frame " | 1084 | printk(KERN_DEBUG "%s: too short (%zd) deauthentication frame " |
1077 | "received from " MAC_FMT " - ignored\n", | 1085 | "received from %s - ignored\n", |
1078 | dev->name, len, MAC_ARG(mgmt->sa)); | 1086 | dev->name, len, print_mac(mac, mgmt->sa)); |
1079 | return; | 1087 | return; |
1080 | } | 1088 | } |
1081 | 1089 | ||
1082 | if (memcmp(ifsta->bssid, mgmt->sa, ETH_ALEN) != 0) { | 1090 | if (memcmp(ifsta->bssid, mgmt->sa, ETH_ALEN) != 0) { |
1083 | printk(KERN_DEBUG "%s: deauthentication frame received from " | 1091 | printk(KERN_DEBUG "%s: deauthentication frame received from " |
1084 | "unknown AP (SA=" MAC_FMT " BSSID=" MAC_FMT ") - " | 1092 | "unknown AP (SA=%s BSSID=%s) - " |
1085 | "ignored\n", dev->name, MAC_ARG(mgmt->sa), | 1093 | "ignored\n", dev->name, print_mac(mac, mgmt->sa), |
1086 | MAC_ARG(mgmt->bssid)); | 1094 | print_mac(mac, mgmt->bssid)); |
1087 | return; | 1095 | return; |
1088 | } | 1096 | } |
1089 | 1097 | ||
1090 | reason_code = le16_to_cpu(mgmt->u.deauth.reason_code); | 1098 | reason_code = le16_to_cpu(mgmt->u.deauth.reason_code); |
1091 | 1099 | ||
1092 | printk(KERN_DEBUG "%s: RX deauthentication from " MAC_FMT | 1100 | printk(KERN_DEBUG "%s: RX deauthentication from %s" |
1093 | " (reason=%d)\n", | 1101 | " (reason=%d)\n", |
1094 | dev->name, MAC_ARG(mgmt->sa), reason_code); | 1102 | dev->name, print_mac(mac, mgmt->sa), reason_code); |
1095 | 1103 | ||
1096 | if (ifsta->flags & IEEE80211_STA_AUTHENTICATED) { | 1104 | if (ifsta->flags & IEEE80211_STA_AUTHENTICATED) { |
1097 | printk(KERN_DEBUG "%s: deauthenticated\n", dev->name); | 1105 | printk(KERN_DEBUG "%s: deauthenticated\n", dev->name); |
@@ -1116,27 +1124,28 @@ static void ieee80211_rx_mgmt_disassoc(struct net_device *dev, | |||
1116 | size_t len) | 1124 | size_t len) |
1117 | { | 1125 | { |
1118 | u16 reason_code; | 1126 | u16 reason_code; |
1127 | DECLARE_MAC_BUF(mac); | ||
1119 | 1128 | ||
1120 | if (len < 24 + 2) { | 1129 | if (len < 24 + 2) { |
1121 | printk(KERN_DEBUG "%s: too short (%zd) disassociation frame " | 1130 | printk(KERN_DEBUG "%s: too short (%zd) disassociation frame " |
1122 | "received from " MAC_FMT " - ignored\n", | 1131 | "received from %s - ignored\n", |
1123 | dev->name, len, MAC_ARG(mgmt->sa)); | 1132 | dev->name, len, print_mac(mac, mgmt->sa)); |
1124 | return; | 1133 | return; |
1125 | } | 1134 | } |
1126 | 1135 | ||
1127 | if (memcmp(ifsta->bssid, mgmt->sa, ETH_ALEN) != 0) { | 1136 | if (memcmp(ifsta->bssid, mgmt->sa, ETH_ALEN) != 0) { |
1128 | printk(KERN_DEBUG "%s: disassociation frame received from " | 1137 | printk(KERN_DEBUG "%s: disassociation frame received from " |
1129 | "unknown AP (SA=" MAC_FMT " BSSID=" MAC_FMT ") - " | 1138 | "unknown AP (SA=%s BSSID=%s) - " |
1130 | "ignored\n", dev->name, MAC_ARG(mgmt->sa), | 1139 | "ignored\n", dev->name, print_mac(mac, mgmt->sa), |
1131 | MAC_ARG(mgmt->bssid)); | 1140 | print_mac(mac, mgmt->bssid)); |
1132 | return; | 1141 | return; |
1133 | } | 1142 | } |
1134 | 1143 | ||
1135 | reason_code = le16_to_cpu(mgmt->u.disassoc.reason_code); | 1144 | reason_code = le16_to_cpu(mgmt->u.disassoc.reason_code); |
1136 | 1145 | ||
1137 | printk(KERN_DEBUG "%s: RX disassociation from " MAC_FMT | 1146 | printk(KERN_DEBUG "%s: RX disassociation from %s" |
1138 | " (reason=%d)\n", | 1147 | " (reason=%d)\n", |
1139 | dev->name, MAC_ARG(mgmt->sa), reason_code); | 1148 | dev->name, print_mac(mac, mgmt->sa), reason_code); |
1140 | 1149 | ||
1141 | if (ifsta->flags & IEEE80211_STA_ASSOCIATED) | 1150 | if (ifsta->flags & IEEE80211_STA_ASSOCIATED) |
1142 | printk(KERN_DEBUG "%s: disassociated\n", dev->name); | 1151 | printk(KERN_DEBUG "%s: disassociated\n", dev->name); |
@@ -1165,29 +1174,30 @@ static void ieee80211_rx_mgmt_assoc_resp(struct net_device *dev, | |||
1165 | struct ieee802_11_elems elems; | 1174 | struct ieee802_11_elems elems; |
1166 | u8 *pos; | 1175 | u8 *pos; |
1167 | int i, j; | 1176 | int i, j; |
1177 | DECLARE_MAC_BUF(mac); | ||
1168 | 1178 | ||
1169 | /* AssocResp and ReassocResp have identical structure, so process both | 1179 | /* AssocResp and ReassocResp have identical structure, so process both |
1170 | * of them in this function. */ | 1180 | * of them in this function. */ |
1171 | 1181 | ||
1172 | if (ifsta->state != IEEE80211_ASSOCIATE) { | 1182 | if (ifsta->state != IEEE80211_ASSOCIATE) { |
1173 | printk(KERN_DEBUG "%s: association frame received from " | 1183 | printk(KERN_DEBUG "%s: association frame received from " |
1174 | MAC_FMT ", but not in associate state - ignored\n", | 1184 | "%s, but not in associate state - ignored\n", |
1175 | dev->name, MAC_ARG(mgmt->sa)); | 1185 | dev->name, print_mac(mac, mgmt->sa)); |
1176 | return; | 1186 | return; |
1177 | } | 1187 | } |
1178 | 1188 | ||
1179 | if (len < 24 + 6) { | 1189 | if (len < 24 + 6) { |
1180 | printk(KERN_DEBUG "%s: too short (%zd) association frame " | 1190 | printk(KERN_DEBUG "%s: too short (%zd) association frame " |
1181 | "received from " MAC_FMT " - ignored\n", | 1191 | "received from %s - ignored\n", |
1182 | dev->name, len, MAC_ARG(mgmt->sa)); | 1192 | dev->name, len, print_mac(mac, mgmt->sa)); |
1183 | return; | 1193 | return; |
1184 | } | 1194 | } |
1185 | 1195 | ||
1186 | if (memcmp(ifsta->bssid, mgmt->sa, ETH_ALEN) != 0) { | 1196 | if (memcmp(ifsta->bssid, mgmt->sa, ETH_ALEN) != 0) { |
1187 | printk(KERN_DEBUG "%s: association frame received from " | 1197 | printk(KERN_DEBUG "%s: association frame received from " |
1188 | "unknown AP (SA=" MAC_FMT " BSSID=" MAC_FMT ") - " | 1198 | "unknown AP (SA=%s BSSID=%s) - " |
1189 | "ignored\n", dev->name, MAC_ARG(mgmt->sa), | 1199 | "ignored\n", dev->name, print_mac(mac, mgmt->sa), |
1190 | MAC_ARG(mgmt->bssid)); | 1200 | print_mac(mac, mgmt->bssid)); |
1191 | return; | 1201 | return; |
1192 | } | 1202 | } |
1193 | 1203 | ||
@@ -1199,9 +1209,9 @@ static void ieee80211_rx_mgmt_assoc_resp(struct net_device *dev, | |||
1199 | "set\n", dev->name, aid); | 1209 | "set\n", dev->name, aid); |
1200 | aid &= ~(BIT(15) | BIT(14)); | 1210 | aid &= ~(BIT(15) | BIT(14)); |
1201 | 1211 | ||
1202 | printk(KERN_DEBUG "%s: RX %sssocResp from " MAC_FMT " (capab=0x%x " | 1212 | printk(KERN_DEBUG "%s: RX %sssocResp from %s (capab=0x%x " |
1203 | "status=%d aid=%d)\n", | 1213 | "status=%d aid=%d)\n", |
1204 | dev->name, reassoc ? "Rea" : "A", MAC_ARG(mgmt->sa), | 1214 | dev->name, reassoc ? "Rea" : "A", print_mac(mac, mgmt->sa), |
1205 | capab_info, status_code, aid); | 1215 | capab_info, status_code, aid); |
1206 | 1216 | ||
1207 | if (status_code != WLAN_STATUS_SUCCESS) { | 1217 | if (status_code != WLAN_STATUS_SUCCESS) { |
@@ -1435,14 +1445,16 @@ static void ieee80211_rx_bss_info(struct net_device *dev, | |||
1435 | struct sta_info *sta; | 1445 | struct sta_info *sta; |
1436 | struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); | 1446 | struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); |
1437 | u64 timestamp; | 1447 | u64 timestamp; |
1448 | DECLARE_MAC_BUF(mac); | ||
1449 | DECLARE_MAC_BUF(mac2); | ||
1438 | 1450 | ||
1439 | if (!beacon && memcmp(mgmt->da, dev->dev_addr, ETH_ALEN)) | 1451 | if (!beacon && memcmp(mgmt->da, dev->dev_addr, ETH_ALEN)) |
1440 | return; /* ignore ProbeResp to foreign address */ | 1452 | return; /* ignore ProbeResp to foreign address */ |
1441 | 1453 | ||
1442 | #if 0 | 1454 | #if 0 |
1443 | printk(KERN_DEBUG "%s: RX %s from " MAC_FMT " to " MAC_FMT "\n", | 1455 | printk(KERN_DEBUG "%s: RX %s from %s to %s\n", |
1444 | dev->name, beacon ? "Beacon" : "Probe Response", | 1456 | dev->name, beacon ? "Beacon" : "Probe Response", |
1445 | MAC_ARG(mgmt->sa), MAC_ARG(mgmt->da)); | 1457 | print_mac(mac, mgmt->sa), print_mac(mac2, mgmt->da)); |
1446 | #endif | 1458 | #endif |
1447 | 1459 | ||
1448 | baselen = (u8 *) mgmt->u.beacon.variable - (u8 *) mgmt; | 1460 | baselen = (u8 *) mgmt->u.beacon.variable - (u8 *) mgmt; |
@@ -1461,10 +1473,10 @@ static void ieee80211_rx_bss_info(struct net_device *dev, | |||
1461 | else | 1473 | else |
1462 | tsf = -1LLU; | 1474 | tsf = -1LLU; |
1463 | if (time_after(jiffies, last_tsf_debug + 5 * HZ)) { | 1475 | if (time_after(jiffies, last_tsf_debug + 5 * HZ)) { |
1464 | printk(KERN_DEBUG "RX beacon SA=" MAC_FMT " BSSID=" | 1476 | printk(KERN_DEBUG "RX beacon SA=%s BSSID=" |
1465 | MAC_FMT " TSF=0x%llx BCN=0x%llx diff=%lld " | 1477 | "%s TSF=0x%llx BCN=0x%llx diff=%lld " |
1466 | "@%lu\n", | 1478 | "@%lu\n", |
1467 | MAC_ARG(mgmt->sa), MAC_ARG(mgmt->bssid), | 1479 | print_mac(mac, mgmt->sa), print_mac(mac2, mgmt->bssid), |
1468 | (unsigned long long)tsf, | 1480 | (unsigned long long)tsf, |
1469 | (unsigned long long)timestamp, | 1481 | (unsigned long long)timestamp, |
1470 | (unsigned long long)(tsf - timestamp), | 1482 | (unsigned long long)(tsf - timestamp), |
@@ -1518,9 +1530,9 @@ static void ieee80211_rx_bss_info(struct net_device *dev, | |||
1518 | } | 1530 | } |
1519 | if (sta->supp_rates != prev_rates) { | 1531 | if (sta->supp_rates != prev_rates) { |
1520 | printk(KERN_DEBUG "%s: updated supp_rates set for " | 1532 | printk(KERN_DEBUG "%s: updated supp_rates set for " |
1521 | MAC_FMT " based on beacon info (0x%x & 0x%x -> " | 1533 | "%s based on beacon info (0x%x & 0x%x -> " |
1522 | "0x%x)\n", | 1534 | "0x%x)\n", |
1523 | dev->name, MAC_ARG(sta->addr), prev_rates, | 1535 | dev->name, print_mac(mac, sta->addr), prev_rates, |
1524 | supp_rates, sta->supp_rates); | 1536 | supp_rates, sta->supp_rates); |
1525 | } | 1537 | } |
1526 | sta_info_put(sta); | 1538 | sta_info_put(sta); |
@@ -1722,6 +1734,11 @@ static void ieee80211_rx_mgmt_probe_req(struct net_device *dev, | |||
1722 | struct sk_buff *skb; | 1734 | struct sk_buff *skb; |
1723 | struct ieee80211_mgmt *resp; | 1735 | struct ieee80211_mgmt *resp; |
1724 | u8 *pos, *end; | 1736 | u8 *pos, *end; |
1737 | DECLARE_MAC_BUF(mac); | ||
1738 | #ifdef CONFIG_MAC80211_IBSS_DEBUG | ||
1739 | DECLARE_MAC_BUF(mac2); | ||
1740 | DECLARE_MAC_BUF(mac3); | ||
1741 | #endif | ||
1725 | 1742 | ||
1726 | if (sdata->type != IEEE80211_IF_TYPE_IBSS || | 1743 | if (sdata->type != IEEE80211_IF_TYPE_IBSS || |
1727 | ifsta->state != IEEE80211_IBSS_JOINED || | 1744 | ifsta->state != IEEE80211_IBSS_JOINED || |
@@ -1734,10 +1751,10 @@ static void ieee80211_rx_mgmt_probe_req(struct net_device *dev, | |||
1734 | tx_last_beacon = 1; | 1751 | tx_last_beacon = 1; |
1735 | 1752 | ||
1736 | #ifdef CONFIG_MAC80211_IBSS_DEBUG | 1753 | #ifdef CONFIG_MAC80211_IBSS_DEBUG |
1737 | printk(KERN_DEBUG "%s: RX ProbeReq SA=" MAC_FMT " DA=" MAC_FMT " BSSID=" | 1754 | printk(KERN_DEBUG "%s: RX ProbeReq SA=%s DA=%s BSSID=" |
1738 | MAC_FMT " (tx_last_beacon=%d)\n", | 1755 | "%s (tx_last_beacon=%d)\n", |
1739 | dev->name, MAC_ARG(mgmt->sa), MAC_ARG(mgmt->da), | 1756 | dev->name, print_mac(mac, mgmt->sa), print_mac(mac2, mgmt->da), |
1740 | MAC_ARG(mgmt->bssid), tx_last_beacon); | 1757 | print_mac(mac3, mgmt->bssid), tx_last_beacon); |
1741 | #endif /* CONFIG_MAC80211_IBSS_DEBUG */ | 1758 | #endif /* CONFIG_MAC80211_IBSS_DEBUG */ |
1742 | 1759 | ||
1743 | if (!tx_last_beacon) | 1760 | if (!tx_last_beacon) |
@@ -1753,8 +1770,8 @@ static void ieee80211_rx_mgmt_probe_req(struct net_device *dev, | |||
1753 | pos + 2 + pos[1] > end) { | 1770 | pos + 2 + pos[1] > end) { |
1754 | if (net_ratelimit()) { | 1771 | if (net_ratelimit()) { |
1755 | printk(KERN_DEBUG "%s: Invalid SSID IE in ProbeReq " | 1772 | printk(KERN_DEBUG "%s: Invalid SSID IE in ProbeReq " |
1756 | "from " MAC_FMT "\n", | 1773 | "from %s\n", |
1757 | dev->name, MAC_ARG(mgmt->sa)); | 1774 | dev->name, print_mac(mac, mgmt->sa)); |
1758 | } | 1775 | } |
1759 | return; | 1776 | return; |
1760 | } | 1777 | } |
@@ -1773,8 +1790,8 @@ static void ieee80211_rx_mgmt_probe_req(struct net_device *dev, | |||
1773 | resp = (struct ieee80211_mgmt *) skb->data; | 1790 | resp = (struct ieee80211_mgmt *) skb->data; |
1774 | memcpy(resp->da, mgmt->sa, ETH_ALEN); | 1791 | memcpy(resp->da, mgmt->sa, ETH_ALEN); |
1775 | #ifdef CONFIG_MAC80211_IBSS_DEBUG | 1792 | #ifdef CONFIG_MAC80211_IBSS_DEBUG |
1776 | printk(KERN_DEBUG "%s: Sending ProbeResp to " MAC_FMT "\n", | 1793 | printk(KERN_DEBUG "%s: Sending ProbeResp to %s\n", |
1777 | dev->name, MAC_ARG(resp->da)); | 1794 | dev->name, print_mac(mac, resp->da)); |
1778 | #endif /* CONFIG_MAC80211_IBSS_DEBUG */ | 1795 | #endif /* CONFIG_MAC80211_IBSS_DEBUG */ |
1779 | ieee80211_sta_tx(dev, skb, 0); | 1796 | ieee80211_sta_tx(dev, skb, 0); |
1780 | } | 1797 | } |
@@ -1925,13 +1942,14 @@ static void ieee80211_sta_expire(struct net_device *dev) | |||
1925 | struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr); | 1942 | struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr); |
1926 | struct sta_info *sta, *tmp; | 1943 | struct sta_info *sta, *tmp; |
1927 | LIST_HEAD(tmp_list); | 1944 | LIST_HEAD(tmp_list); |
1945 | DECLARE_MAC_BUF(mac); | ||
1928 | 1946 | ||
1929 | write_lock_bh(&local->sta_lock); | 1947 | write_lock_bh(&local->sta_lock); |
1930 | list_for_each_entry_safe(sta, tmp, &local->sta_list, list) | 1948 | list_for_each_entry_safe(sta, tmp, &local->sta_list, list) |
1931 | if (time_after(jiffies, sta->last_rx + | 1949 | if (time_after(jiffies, sta->last_rx + |
1932 | IEEE80211_IBSS_INACTIVITY_LIMIT)) { | 1950 | IEEE80211_IBSS_INACTIVITY_LIMIT)) { |
1933 | printk(KERN_DEBUG "%s: expiring inactive STA " MAC_FMT | 1951 | printk(KERN_DEBUG "%s: expiring inactive STA %s\n", |
1934 | "\n", dev->name, MAC_ARG(sta->addr)); | 1952 | dev->name, print_mac(mac, sta->addr)); |
1935 | __sta_info_get(sta); | 1953 | __sta_info_get(sta); |
1936 | sta_info_remove(sta); | 1954 | sta_info_remove(sta); |
1937 | list_add(&sta->list, &tmp_list); | 1955 | list_add(&sta->list, &tmp_list); |
@@ -2362,6 +2380,7 @@ static int ieee80211_sta_create_ibss(struct net_device *dev, | |||
2362 | struct ieee80211_hw_mode *mode; | 2380 | struct ieee80211_hw_mode *mode; |
2363 | u8 bssid[ETH_ALEN], *pos; | 2381 | u8 bssid[ETH_ALEN], *pos; |
2364 | int i; | 2382 | int i; |
2383 | DECLARE_MAC_BUF(mac); | ||
2365 | 2384 | ||
2366 | #if 0 | 2385 | #if 0 |
2367 | /* Easier testing, use fixed BSSID. */ | 2386 | /* Easier testing, use fixed BSSID. */ |
@@ -2377,8 +2396,8 @@ static int ieee80211_sta_create_ibss(struct net_device *dev, | |||
2377 | bssid[0] |= 0x02; | 2396 | bssid[0] |= 0x02; |
2378 | #endif | 2397 | #endif |
2379 | 2398 | ||
2380 | printk(KERN_DEBUG "%s: Creating new IBSS network, BSSID " MAC_FMT "\n", | 2399 | printk(KERN_DEBUG "%s: Creating new IBSS network, BSSID %s\n", |
2381 | dev->name, MAC_ARG(bssid)); | 2400 | dev->name, print_mac(mac, bssid)); |
2382 | 2401 | ||
2383 | bss = ieee80211_rx_bss_add(dev, bssid); | 2402 | bss = ieee80211_rx_bss_add(dev, bssid); |
2384 | if (!bss) | 2403 | if (!bss) |
@@ -2418,6 +2437,8 @@ static int ieee80211_sta_find_ibss(struct net_device *dev, | |||
2418 | int found = 0; | 2437 | int found = 0; |
2419 | u8 bssid[ETH_ALEN]; | 2438 | u8 bssid[ETH_ALEN]; |
2420 | int active_ibss; | 2439 | int active_ibss; |
2440 | DECLARE_MAC_BUF(mac); | ||
2441 | DECLARE_MAC_BUF(mac2); | ||
2421 | 2442 | ||
2422 | if (ifsta->ssid_len == 0) | 2443 | if (ifsta->ssid_len == 0) |
2423 | return -EINVAL; | 2444 | return -EINVAL; |
@@ -2434,8 +2455,8 @@ static int ieee80211_sta_find_ibss(struct net_device *dev, | |||
2434 | || !(bss->capability & WLAN_CAPABILITY_IBSS)) | 2455 | || !(bss->capability & WLAN_CAPABILITY_IBSS)) |
2435 | continue; | 2456 | continue; |
2436 | #ifdef CONFIG_MAC80211_IBSS_DEBUG | 2457 | #ifdef CONFIG_MAC80211_IBSS_DEBUG |
2437 | printk(KERN_DEBUG " bssid=" MAC_FMT " found\n", | 2458 | printk(KERN_DEBUG " bssid=%s found\n", |
2438 | MAC_ARG(bss->bssid)); | 2459 | print_mac(mac, bss->bssid)); |
2439 | #endif /* CONFIG_MAC80211_IBSS_DEBUG */ | 2460 | #endif /* CONFIG_MAC80211_IBSS_DEBUG */ |
2440 | memcpy(bssid, bss->bssid, ETH_ALEN); | 2461 | memcpy(bssid, bss->bssid, ETH_ALEN); |
2441 | found = 1; | 2462 | found = 1; |
@@ -2445,14 +2466,14 @@ static int ieee80211_sta_find_ibss(struct net_device *dev, | |||
2445 | spin_unlock_bh(&local->sta_bss_lock); | 2466 | spin_unlock_bh(&local->sta_bss_lock); |
2446 | 2467 | ||
2447 | #ifdef CONFIG_MAC80211_IBSS_DEBUG | 2468 | #ifdef CONFIG_MAC80211_IBSS_DEBUG |
2448 | printk(KERN_DEBUG " sta_find_ibss: selected " MAC_FMT " current " | 2469 | printk(KERN_DEBUG " sta_find_ibss: selected %s current " |
2449 | MAC_FMT "\n", MAC_ARG(bssid), MAC_ARG(ifsta->bssid)); | 2470 | "%s\n", print_mac(mac, bssid), print_mac(mac2, ifsta->bssid)); |
2450 | #endif /* CONFIG_MAC80211_IBSS_DEBUG */ | 2471 | #endif /* CONFIG_MAC80211_IBSS_DEBUG */ |
2451 | if (found && memcmp(ifsta->bssid, bssid, ETH_ALEN) != 0 && | 2472 | if (found && memcmp(ifsta->bssid, bssid, ETH_ALEN) != 0 && |
2452 | (bss = ieee80211_rx_bss_get(dev, bssid))) { | 2473 | (bss = ieee80211_rx_bss_get(dev, bssid))) { |
2453 | printk(KERN_DEBUG "%s: Selected IBSS BSSID " MAC_FMT | 2474 | printk(KERN_DEBUG "%s: Selected IBSS BSSID %s" |
2454 | " based on configured SSID\n", | 2475 | " based on configured SSID\n", |
2455 | dev->name, MAC_ARG(bssid)); | 2476 | dev->name, print_mac(mac, bssid)); |
2456 | return ieee80211_sta_join_ibss(dev, ifsta, bss); | 2477 | return ieee80211_sta_join_ibss(dev, ifsta, bss); |
2457 | } | 2478 | } |
2458 | #ifdef CONFIG_MAC80211_IBSS_DEBUG | 2479 | #ifdef CONFIG_MAC80211_IBSS_DEBUG |
@@ -3070,19 +3091,20 @@ struct sta_info * ieee80211_ibss_add_sta(struct net_device *dev, | |||
3070 | struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr); | 3091 | struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr); |
3071 | struct sta_info *sta; | 3092 | struct sta_info *sta; |
3072 | struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); | 3093 | struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); |
3094 | DECLARE_MAC_BUF(mac); | ||
3073 | 3095 | ||
3074 | /* TODO: Could consider removing the least recently used entry and | 3096 | /* TODO: Could consider removing the least recently used entry and |
3075 | * allow new one to be added. */ | 3097 | * allow new one to be added. */ |
3076 | if (local->num_sta >= IEEE80211_IBSS_MAX_STA_ENTRIES) { | 3098 | if (local->num_sta >= IEEE80211_IBSS_MAX_STA_ENTRIES) { |
3077 | if (net_ratelimit()) { | 3099 | if (net_ratelimit()) { |
3078 | printk(KERN_DEBUG "%s: No room for a new IBSS STA " | 3100 | printk(KERN_DEBUG "%s: No room for a new IBSS STA " |
3079 | "entry " MAC_FMT "\n", dev->name, MAC_ARG(addr)); | 3101 | "entry %s\n", dev->name, print_mac(mac, addr)); |
3080 | } | 3102 | } |
3081 | return NULL; | 3103 | return NULL; |
3082 | } | 3104 | } |
3083 | 3105 | ||
3084 | printk(KERN_DEBUG "%s: Adding new IBSS station " MAC_FMT " (dev=%s)\n", | 3106 | printk(KERN_DEBUG "%s: Adding new IBSS station %s (dev=%s)\n", |
3085 | local->mdev->name, MAC_ARG(addr), dev->name); | 3107 | local->mdev->name, print_mac(mac, addr), dev->name); |
3086 | 3108 | ||
3087 | sta = sta_info_add(local, dev, addr, GFP_ATOMIC); | 3109 | sta = sta_info_add(local, dev, addr, GFP_ATOMIC); |
3088 | if (!sta) | 3110 | if (!sta) |