aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
Diffstat (limited to 'net')
-rw-r--r--net/ieee80211/ieee80211_rx.c35
1 files changed, 21 insertions, 14 deletions
diff --git a/net/ieee80211/ieee80211_rx.c b/net/ieee80211/ieee80211_rx.c
index 8d87d66c2a34..6b005cb0caa0 100644
--- a/net/ieee80211/ieee80211_rx.c
+++ b/net/ieee80211/ieee80211_rx.c
@@ -917,8 +917,9 @@ static int ieee80211_parse_qos_info_param_IE(struct ieee80211_info_element
917 return rc; 917 return rc;
918} 918}
919 919
920static int ieee80211_parse_info_param(struct ieee80211_info_element *info_element, 920static int ieee80211_parse_info_param(struct ieee80211_info_element
921 u16 length, struct ieee80211_network *network) 921 *info_element, u16 length,
922 struct ieee80211_network *network)
922{ 923{
923 u8 i; 924 u8 i;
924#ifdef CONFIG_IEEE80211_DEBUG 925#ifdef CONFIG_IEEE80211_DEBUG
@@ -929,11 +930,11 @@ static int ieee80211_parse_info_param(struct ieee80211_info_element *info_elemen
929 while (length >= sizeof(*info_element)) { 930 while (length >= sizeof(*info_element)) {
930 if (sizeof(*info_element) + info_element->len > length) { 931 if (sizeof(*info_element) + info_element->len > length) {
931 IEEE80211_DEBUG_MGMT("Info elem: parse failed: " 932 IEEE80211_DEBUG_MGMT("Info elem: parse failed: "
932 "info_element->len + 2 > left : " 933 "info_element->len + 2 > left : "
933 "info_element->len+2=%zd left=%d, id=%d.\n", 934 "info_element->len+2=%zd left=%d, id=%d.\n",
934 info_element->len + 935 info_element->len +
935 sizeof(*info_element), 936 sizeof(*info_element),
936 length, info_element->id); 937 length, info_element->id);
937 return 1; 938 return 1;
938 } 939 }
939 940
@@ -954,7 +955,7 @@ static int ieee80211_parse_info_param(struct ieee80211_info_element *info_elemen
954 IW_ESSID_MAX_SIZE - network->ssid_len); 955 IW_ESSID_MAX_SIZE - network->ssid_len);
955 956
956 IEEE80211_DEBUG_MGMT("MFIE_TYPE_SSID: '%s' len=%d.\n", 957 IEEE80211_DEBUG_MGMT("MFIE_TYPE_SSID: '%s' len=%d.\n",
957 network->ssid, network->ssid_len); 958 network->ssid, network->ssid_len);
958 break; 959 break;
959 960
960 case MFIE_TYPE_RATES: 961 case MFIE_TYPE_RATES:
@@ -1074,17 +1075,20 @@ static int ieee80211_parse_info_param(struct ieee80211_info_element *info_elemen
1074 break; 1075 break;
1075 1076
1076 case MFIE_TYPE_QOS_PARAMETER: 1077 case MFIE_TYPE_QOS_PARAMETER:
1077 printk(KERN_ERR "QoS Error need to parse QOS_PARAMETER IE\n"); 1078 printk(KERN_ERR
1079 "QoS Error need to parse QOS_PARAMETER IE\n");
1078 break; 1080 break;
1079 1081
1080 default: 1082 default:
1081 IEEE80211_DEBUG_MGMT("unsupported IE %d\n", 1083 IEEE80211_DEBUG_MGMT("unsupported IE %d\n",
1082 info_element->id); 1084 info_element->id);
1083 break; 1085 break;
1084 } 1086 }
1085 1087
1086 length -= sizeof(*info_element) + info_element->len; 1088 length -= sizeof(*info_element) + info_element->len;
1087 info_element = (struct ieee80211_info_element *) &info_element->data[info_element->len]; 1089 info_element =
1090 (struct ieee80211_info_element *)&info_element->
1091 data[info_element->len];
1088 } 1092 }
1089 1093
1090 return 0; 1094 return 0;
@@ -1112,7 +1116,8 @@ static int ieee80211_handle_assoc_resp(struct ieee80211_device *ieee, struct iee
1112 network->rates_len = network->rates_ex_len = 0; 1116 network->rates_len = network->rates_ex_len = 0;
1113 network->last_associate = 0; 1117 network->last_associate = 0;
1114 network->ssid_len = 0; 1118 network->ssid_len = 0;
1115 network->erp_value = (network->capability & WLAN_CAPABILITY_IBSS) ? 0x3 : 0x0; 1119 network->erp_value =
1120 (network->capability & WLAN_CAPABILITY_IBSS) ? 0x3 : 0x0;
1116 1121
1117 if (stats->freq == IEEE80211_52GHZ_BAND) { 1122 if (stats->freq == IEEE80211_52GHZ_BAND) {
1118 /* for A band (No DS info) */ 1123 /* for A band (No DS info) */
@@ -1123,7 +1128,8 @@ static int ieee80211_handle_assoc_resp(struct ieee80211_device *ieee, struct iee
1123 network->wpa_ie_len = 0; 1128 network->wpa_ie_len = 0;
1124 network->rsn_ie_len = 0; 1129 network->rsn_ie_len = 0;
1125 1130
1126 if(ieee80211_parse_info_param(frame->info_element, stats->len - sizeof(*frame), network)) 1131 if (ieee80211_parse_info_param
1132 (frame->info_element, stats->len - sizeof(*frame), network))
1127 return 1; 1133 return 1;
1128 1134
1129 network->mode = 0; 1135 network->mode = 0;
@@ -1185,7 +1191,8 @@ static inline int ieee80211_network_init(struct ieee80211_device *ieee, struct i
1185 network->wpa_ie_len = 0; 1191 network->wpa_ie_len = 0;
1186 network->rsn_ie_len = 0; 1192 network->rsn_ie_len = 0;
1187 1193
1188 if(ieee80211_parse_info_param(beacon->info_element, stats->len - sizeof(*beacon), network)) 1194 if (ieee80211_parse_info_param
1195 (beacon->info_element, stats->len - sizeof(*beacon), network))
1189 return 1; 1196 return 1;
1190 1197
1191 network->mode = 0; 1198 network->mode = 0;