aboutsummaryrefslogtreecommitdiffstats
path: root/net/ieee80211/ieee80211_wx.c
diff options
context:
space:
mode:
authorJames Ketrenos <jketreno@linux.intel.com>2005-09-21 12:53:43 -0400
committerJeff Garzik <jgarzik@pobox.com>2005-09-21 23:01:52 -0400
commit20d64713ae71c0b0aa06084acbef2244021baaca (patch)
treef9af562b0bc70f7f75d0195aacf155fd3ec6628a /net/ieee80211/ieee80211_wx.c
parent4ca5253d573d7b3785dbb2f123f948fdca6ee235 (diff)
[PATCH] ieee80211: Fixed a kernel oops on module unload
tree 367069f24fc38b4aa910e86ff40094d2078d8aa7 parent a33a1982012e9070736e3717231714dc9892303b author James Ketrenos <jketreno@linux.intel.com> 1124430800 -0500 committer James Ketrenos <jketreno@linux.intel.com> 1127310571 -0500 Fixed a kernel oops on module unload by adding spin lock protection to ieee80211's crypt handlers (thanks to Zhu Yi) Modified scan result logic to report WPA and RSN IEs if set (vs.being based on wpa_enabled) Added ieee80211_device as the first parameter to the crypt init() method. TKIP modified to use that structure for determining whether to countermeasures are active. Signed-off-by: James Ketrenos <jketreno@linux.intel.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Diffstat (limited to 'net/ieee80211/ieee80211_wx.c')
-rw-r--r--net/ieee80211/ieee80211_wx.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/net/ieee80211/ieee80211_wx.c b/net/ieee80211/ieee80211_wx.c
index 04f0897b0653..fc4e1377aba7 100644
--- a/net/ieee80211/ieee80211_wx.c
+++ b/net/ieee80211/ieee80211_wx.c
@@ -182,7 +182,7 @@ static inline char *ipw2100_translate_scan(struct ieee80211_device *ieee,
182 if (iwe.u.data.length) 182 if (iwe.u.data.length)
183 start = iwe_stream_add_point(start, stop, &iwe, custom); 183 start = iwe_stream_add_point(start, stop, &iwe, custom);
184 184
185 if (ieee->wpa_enabled && network->wpa_ie_len) { 185 if (network->wpa_ie_len) {
186 char buf[MAX_WPA_IE_LEN * 2 + 30]; 186 char buf[MAX_WPA_IE_LEN * 2 + 30];
187 187
188 u8 *p = buf; 188 u8 *p = buf;
@@ -197,7 +197,7 @@ static inline char *ipw2100_translate_scan(struct ieee80211_device *ieee,
197 start = iwe_stream_add_point(start, stop, &iwe, buf); 197 start = iwe_stream_add_point(start, stop, &iwe, buf);
198 } 198 }
199 199
200 if (ieee->wpa_enabled && network->rsn_ie_len) { 200 if (network->rsn_ie_len) {
201 char buf[MAX_WPA_IE_LEN * 2 + 30]; 201 char buf[MAX_WPA_IE_LEN * 2 + 30];
202 202
203 u8 *p = buf; 203 u8 *p = buf;
@@ -351,7 +351,7 @@ int ieee80211_wx_set_encode(struct ieee80211_device *ieee,
351 } 351 }
352 352
353 if (new_crypt->ops && try_module_get(new_crypt->ops->owner)) 353 if (new_crypt->ops && try_module_get(new_crypt->ops->owner))
354 new_crypt->priv = new_crypt->ops->init(key); 354 new_crypt->priv = new_crypt->ops->init(ieee, key);
355 355
356 if (!new_crypt->ops || !new_crypt->priv) { 356 if (!new_crypt->ops || !new_crypt->priv) {
357 kfree(new_crypt); 357 kfree(new_crypt);